程序无法正常运行(对话框)

时间:2014-04-01 16:39:18

标签: java android dialog

我按照Android手册的例子起草了一个项目。 但是,有一些问题出现了: 当我触摸选择时,程序将退出程序并返回一条消息“应用程序已意外停止。请再试一次” 有人可以帮助我吗?

这是源代码:     package com.example.ch07_dialogask;

import android.app.Activity;
import android.app.AlertDialog;
import android.content.DialogInterface;
import android.os.Bundle;
import android.widget.TextView;

public class MainActivity extends Activity      //should be protected
implements DialogInterface.OnClickListener{

TextView txv;

@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    txv = (TextView)findViewById(R.id.answer);

    new AlertDialog.Builder(this)
        .setMessage("Do you like Android phone?")
        .setCancelable(false)
        .setIcon(android.R.drawable.ic_menu_edit)
        .setTitle("Android survey")
        .setPositiveButton("Like",this)
        .setNegativeButton("Unlike",this)
        .setNeutralButton("No Comment",null)
        .show();
}

@Override
public void onClick(DialogInterface dialog, int id){
    if(id==DialogInterface.BUTTON_POSITIVE){
        txv.setText("You Like Android Phone!");
    }
    else if(id==DialogInterface.BUTTON_NEGATIVE){
        txv.setText("You Dislike Android Phone.....");
    }
}

1 个答案:

答案 0 :(得分:0)

对不起,我还没有发表评论。我还没有50个声望点。

无论如何,尝试使用"新的AlertDialog.Builder ......"该活动的onResume方法的片段。

我敢打赌,这种情况正在发生,因为onCreate方法还没有显示布局。您可以在此处了解有关活动生命周期的更多信息:Android Developer: Activity。另外,尝试使用您的问题发布Logcat。它有助于了解正在发生的事情。

希望这能帮到你!

修改

@Override
public void onCreate(Bundle savedInstanceState) {
     super.onCreate(savedInstanceState);
     setContentView(R.layout.activity_main);

     txv = (TextView)findViewById(R.id.answer);
}

@Override
public void onStart(){ //Called when the activity is becoming visible to the user.
     super.onStart();
     new AlertDialog.Builder(this)
    .setMessage("Do you like Android phone?")
    .setCancelable(false)
    .setIcon(android.R.drawable.ic_menu_edit)
    .setTitle("Android survey")
    .setPositiveButton("Like",this)
    .setNegativeButton("Unlike",this)
    .setNeutralButton("No Comment",null)
    .show();
}