2

我目前正在使用 DialogFragment 来学习使用它。我假设与 相比onCreateView()onCreate()可以这样做:

public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    testTextView.setText("SUCCESS!"); //ERROR HERE
}

但我错了。不知道为什么它不工作。当我注释掉testTextView.setText("Success!");The error is a时,错误消失了NullPointerException,然后它只是标记第 39 行,这是有问题的代码行所在的位置。任何澄清都非常感谢。

4

2 回答 2

1

试试这个 :

public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState)
{
    if (container == null) {
        return null;
    }
    return (LinearLayout)inflater.inflate(R.layout.your_fragmentlayout_file, container, false);
}



@Override
public void onActivityCreated(Bundle savedInstance)
{
    super.onActivityCreated(savedInstance);
    TextView testTextView = (TextView)getActivity().findViewById(R.id.your_textview_id);
    testTextView.setText("SUCCESS!");
}
于 2012-06-15T07:39:22.400 回答
0

你在哪里初始化了 testTextView。? 你应该这样做…………

以及根据片段生命周期

onAttach(Activity)-->onCreate(Bundle) -->onCreateView(LayoutInflater, ViewGroup, Bundle)->onActivityCreated(Bundle)-->onStart() 

所以你应该在 onCreateView 或之后处理这项工作......

http://android-developers.blogspot.in/2012/05/using-dialogfragments.html

于 2012-06-15T07:12:34.007 回答