我在片段活动中运行 setText 命令以尝试在父活动中设置 textView 的文本,但它不起作用。有任何想法吗?
TextView text = (TextView) getView().findViewById(R.id.status);
text.setText("Text from a fragment");
我在 Eclipse 中没有收到错误,但在运行时出现空指针异常。当然它发生在我设置文本的那一行。关于如何做到这一点的任何想法?
我在片段活动中运行 setText 命令以尝试在父活动中设置 textView 的文本,但它不起作用。有任何想法吗?
TextView text = (TextView) getView().findViewById(R.id.status);
text.setText("Text from a fragment");
我在 Eclipse 中没有收到错误,但在运行时出现空指针异常。当然它发生在我设置文本的那一行。关于如何做到这一点的任何想法?
使用 getActivity()。它将导致 findViewById() 方法在基本活动处开始搜索并冒泡,直到找到您的“r.id.status”。
TextView text = (TextView) getActivity().findViewById(R.id.status);
text.setText("Text from a fragment");
是的,您的 NPE 可能是因为R.id.status
可能未在片段视图中定义。
getView()
onCreateView()
将返回在您的 Fragment方法中生成的视图。
您是尝试从(辅助)FragmentActivity 在您的 Activity 中设置 TextView,还是尝试从 Fragment 在 FragmentActivity 中设置 TextView?
如果它是第一个选项,你会想要做一些事情,比如使用消息处理程序并向第二个活动传递一条消息。我不认为这是你要问的。
如果您想从 Fragment 设置 TextView,通常的方法是使用方法(updateText()
例如)在 FragmentActivity 上定义一个接口,并让 Fragment 调用该方法。然后 Activity 处理 TextView 更新,这很好,因为它可以调用getView()
它将返回您正在寻找的视图。这与我在此处发布的答案相似