developer.android.com的示例代码“FragmentBasic”无法正常工作

时间:2016-06-05 18:44:30

标签: android android-fragments

我正在尝试运行示例代码: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

有人可以提供任何提示,为什么新下载的源码会出现这样的错误?

1 个答案:

答案 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;