2016-11-20 18 views
-2

我已经设置了一个列表项目的意图,以便当我点击该项目一个新的活动开始。我的应用程序崩溃,当我点击列表项,并且此消息显示在logcat中时:导致:java.lang.IllegalArgumentException:

引起:java.lang.IllegalArgumentException:未找到id为0x7f0c0055的视图(com.example.android.sunshine:id /容器),用于片段DetailFragment {470791f#0的id = 0x7f0c0055}

这里是详细分段消息被reffering到:

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; 
    } 

} 

}

+0

请确保'fragment_detail'文件包含'detail_text'文本视图。 – Razgriz

+0

是的,fragment_detail文件包含detail_text文本视图。 –

+0

你应该尝试清除缓存并重建它。我遇到过这个错误很多次。 –

回答

0

代替直接得到S研ng value from intent, 尝试从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); 
} 
相关问题