2

我有一个 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!");

如何将数据设置为膨胀布局?

4

1 回答 1

4

您必须首先通过使用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;
}
于 2012-11-26T08:36:22.330 回答