从片段内的setText(setText from inside a fragment)

2019-10-17 03:05发布

我运行一个片段活动,试图设置父活动一个TextView的文本内的setText命令,但它不工作。 有任何想法吗?

TextView text = (TextView) getView().findViewById(R.id.status);
        text.setText("Text from a fragment");

我没有在Eclipse中得到一个错误,但我在运行时得到一个空指针异常。 当然,它发生在哪里我的setText线。 如何做到这一点任何想法?

Answer 1:

是您的NPE可能是因为R.id.status很可能无法在该片段中的视图定义。

getView()将返回在你的碎片的产生的观点onCreateView()方法。

你们是不是从一个(二级)FragmentActivity设置你的活动一个TextView或试图从一个片段设置在FragmentActivity一个TextView?

如果是第一次选择,你要像使用一个消息处理程序,并通过第二次活动的消息做一些事情。 我不认为这是你在问什么,但。

如果你想从一个片段设置一个TextView,做到这一点的一般方法是定义上的方法(您FragmentActivity接口updateText()为例),并获得片段调用的方法。 然后活动处理TextView的更新,这很好地工作,因为它可以调用getView()将返回你正在寻找的视图。 它类似于我的答案贴在这里



Answer 2:

使用getActivity()。 这将导致findViewById()方法,直到找到你的“r.id.status”开始在该基地的活动搜索和泡沫了。

TextView text = (TextView) getActivity().findViewById(R.id.status);
text.setText("Text from a fragment");


文章来源: setText from inside a fragment