自定义对话框的setText()导致应用程序崩溃

时间:2015-05-30 16:54:16

标签: android android-layout

我已经开始在android中开发了。我正在尝试做一个文字游戏,最后我应该在一个对话框中显示玩家结果。我在布局中有一个textView,当尝试使用setText()时,应用程序崩溃了。否则,将显示自定义对话框。需要帮助。

@Override
   public void onClick(View v) {
    switch (v.getId()){
        case R.id.butt_submit:
            puzzword.validateAnswer();
            puzzword.resetStrings();
            init();
            if(count==10){
                showScore();
                count=0;
               // finish();
            }
            break;
        case R.id.butt_share:
            break;
    }
   }


public void showScore(){
    Dialog d = new Dialog(this);
    d.setContentView(R.layout.dialog1_layout);
    d.setTitle("Your Score");
    TextView correctAns = (TextView) findViewById(R.id.correctAns);
    correctAns.setText("Correct Answers");
    d.show();
}

自定义对话框的布局文件在此处。

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent" android:layout_height="match_parent"
android:background="@color/back_color">

<TextView
    android:id="@+id/correctAns"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_centerHorizontal="true"
    android:layout_centerVertical="true"
    android:textColor="@color/text_color"
    android:textSize="25dp"
    />
<TextView
    android:id="@+id/wrongAns"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_below="@+id/correctAns"
    android:layout_marginTop="30dp"
    android:layout_centerHorizontal="true"
    android:layout_centerVertical="true"
    android:textColor="@color/text_color"
    android:textStyle="bold"
    android:textSize="25dp"
    />

</RelativeLayout>

2 个答案:

答案 0 :(得分:3)

问题是您正在尝试从活动内容视图中获取视图,而不是从对话框视图中获取视图。 而不是:

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

写:

TextView correctAns = (TextView) dialog.findViewById(R.id.correctAns);

答案 1 :(得分:0)

试试这个:

TextView correctAns = (TextView)  dialog.findViewById(R.id.correctAns);