引起:java.lang.IllegalArgumentException:

时间:2016-11-20 04:02:33

标签: android android-fragments android-intent

我已经设置了一个列表项目的意图,以便当我单击该项目时,新活动开始。当我点击列表项时我的应用程序崩溃,这条消息显示在logcat中:

引起:java.lang.IllegalArgumentException:找不到ID为0x7f0c0055(com.example.android.sunshine:id / container)的片段,用于片段DetailFragment {470791f#0 id = 0x7f0c0055} < / p>

以下是邮件正在提供的详细信息片段:

public static class DetailFragment extends Fragment {

    public DetailFragment() {
    }

    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container,
                             Bundle savedInstanceState) {

        View rootView = inflater.inflate(R.layout.fragment_detail, container, false);

        // The detail Activity called via intent.  Inspect the intent for forecast data.
        Intent intent = getActivity().getIntent();
        if (intent != null && intent.hasExtra(Intent.EXTRA_TEXT)) {
            String forecastStr = intent.getStringExtra(Intent.EXTRA_TEXT);
            ((TextView) rootView.findViewById(R.id.detail_text))
                    .setText(forecastStr);
        }
        return rootView;
    }

}

}

1 个答案:

答案 0 :(得分:0)

而不是直接从intent获取String值, 尝试从Bundle获取String值,如下例所示,您得到引起:java.lang.IllegalArgumentException:找不到视图,因为在将视图返回到片段之前它会崩溃。

Intent intent = getActivity().getIntent();
if (intent != null && intent.getExtras()!= null) {
    String forecastStr = intent.getExtras().getString(Intent.EXTRA_TEXT, "");
    ((TextView) rootView.findViewById(R.id.detail_text))
                    .setText(forecastStr);
}
相关问题