我正在尝试运行示例代码:developer.android.com/fragments
在智能手机上,它运行正常,但在平板电脑上崩溃。
问题出在ArticleFragment.java
行:
public void updateArticleView(int position) {
TextView article = (TextView) getActivity().findViewById(R.id.article);
article.setText(Ipsum.Articles[position]);
}
方法getActivity()
会返回正确的活动,但findViewById
会在大屏幕上返回null
,因此应用程序崩溃时会尝试在setText()
上调用null
。
有人可以提供任何提示,为什么新下载的源码会出现这样的错误?
答案 0 :(得分:1)
我找到了解决方法:
1)更改onCreateView()
中的代码:
return inflater.inflate(R.layout.article_view, container, false);
为:
View myFragmentView = inflater.inflate(R.layout.article_view, container, false);
article = (TextView) myFragmentView.findViewById(R.id.article_text);
return myFragmentView;
2)从updateArticleView()
删除:
TextView article = (TextView) getActivity().findViewById(R.id.article);
3)添加字段:
TextView article;