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

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


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

编辑:

public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState){
    View testView = (View)inflater.inflate(R.layout.test_dialog_file, container, false);
    //instantiated testTextView globally
    testTextView = (TextView)testView.findViewById(R.id.set_text);
    testTextView.setText("SUCCESS!");
    return testView;
}

最佳答案

testTextView没有指向任何对象,因此请尝试类似

testTextView = (TextView) findViewById(R.id.testTextView);


编辑:

如果您看到lifecycle of a fragment,它说onCreateViewonCreate之后被调用,因此您的onCreate没有对对象的任何引用,即布局中的textview

10-08 02:51