在另一个视图中找不到TextView

时间:2020-05-15 12:05:15

标签: java android android-studio

我找不到错误。我想设置textview的文本。但是,当我设置文本时,我收到一条错误消息(请参见下文)。我做错了什么? 再往下一点,我叫一个按钮。此调用效果很好。调用文本视图并设置其文本时,我在做什么错了?

private void popUp(int layout, int button) {
    epicDialog.setContentView(layout);
    epicDialog.getWindow().setBackgroundDrawable(new ColorDrawable(Color.TRANSPARENT));

    TextView test = (TextView) epicDialog.findViewById(R.id.textView_popup);
    test.setText("Hello");

    ....
   Button button;
    button= epicDialog.findViewById(R.id.button);
    button.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            // do something
        }

    });        
}

错误

java.lang.NullPointerException: Attempt to invoke virtual method 'void android.widget.TextView.setText(java.lang.CharSequence)' on a null object reference

2 个答案:

答案 0 :(得分:0)

您忘了在显示文本视图之前显示对话框。

 private void popUp(int layout, int button) {
        epicDialog.setContentView(layout);
        epicDialog.getWindow().setBackgroundDrawable(new ColorDrawable(Color.TRANSPARENT));
        epicDialog.show();

        TextView test = (TextView) epicDialog.findViewById(R.id.textView_popup);
        test.setText("Hello");

        ....
       Button button;
        button= epicDialog.findViewById(R.id.button);
        button.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                // do something
            }

        });        
    }

答案 1 :(得分:-1)

我认为您在Java代码中添加了错误的ID。 检查您的xml。

android:id="@+id/textView"