我有一个FragmentActivity,用3个标签设置主要布局。每个标签都有自己的片段,它将自己的布局膨胀为主布局。
例如,三个碎片中的一个:
public class Fragment1 extends Fragment {
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
if (container == null) {
return null;
}
return inflater.inflate(R.layout.fragment1, container, false);
}
}
当我添加所有片段并将它们与标签连接时,一切正常。当我点击tab1时,Fragment1的布局显示,当我点击Tab2时,Fragment2的布局显示。
问题在于,当我想在那个膨胀的布局中更改某些内容时(例如,在fragment1布局中将setText执行到textView),我在该行中收到NullPointerException并且应用程序停止。
这不起作用:
TextView test = (TextView) findViewById(R.id.fragmentOneText1);
test.setText("Test text!");
如何将数据设置为膨胀布局?
答案 0 :(得分:3)
您必须先使用LayoutInflater
对片段特定的布局进行充气,然后在片段中映射控件
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
View fragmentView = inflater.inflate(R.layout.R.layout.fragment1, container, false);
TextView text = (TextView) fragmentView.findViewById(R.id.fragmentOneText1);
mTextNoResult=(TextView)fragmentView.findViewById(R.id.text_noresult);
return fragmentView;
}