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

Java 程序无法正常运行(对话框),java,android,dialog,Java,Android,Dialog,我以Android书籍为例起草了一个项目。 但是,也出现了一些问题: 当我点击一个选项时,程序将退出程序并返回一条消息“应用程序意外停止。请重试” 有人能帮我吗 以下是源代码: 包com.example.ch07_dialogask import android.app.Activity; import android.app.AlertDialog; import android.content.DialogInterface; import android.os.Bundle; import

我以Android书籍为例起草了一个项目。 但是,也出现了一些问题: 当我点击一个选项时,程序将退出程序并返回一条消息“应用程序意外停止。请重试” 有人能帮我吗

以下是源代码: 包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.....");
    }
}

对不起,我还不能评论。我还没有50点的声望

无论如何,请尝试将“new AlertDialog.Builder…”代码段放在活动的onResume方法上

我敢打赌这是因为onCreate方法还没有显示布局。您可以在此处了解有关活动生命周期的更多信息:。另外,试着用你的问题发布日志。了解正在发生的事情很有帮助

希望这对你有帮助

编辑:

@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();
}

您需要向我们显示完整的错误日志,我怀疑
txv
是空的,因为您使用了错误的布局04-02 16:36:04.110:D/AndroidRuntime(319):关闭VM 04-02 16:36:04.110:W/dalvikvm(319):threadid=1:线程退出时出现未捕获异常(组=0x4001d800)04-02 16:36:04.129:E/AndroidRuntime(319):致命异常:main 04-02 16:36:04.129:E/AndroidRuntime(319):java.lang.NullPointerException 04-02 16:36:04.129:E/AndroidRuntime(319):在com.example.ch07_dialogask.MainActivity.onClick(MainActivity.java:40)04-02 16:36:04.129:E/AndroidRuntime(319):在com.android.internal.app.AlertController$ButtonHandler.handleMessage(AlertController.java:158)04-02 16:36:04.129:E/AndroidRuntime(319):在android.os.Handler.dispatchMessage(Handler.java:99)04-02 16:36:04.129:E/AndroidRuntime(319):在android.os.Looper.loop(Looper.java:123)04-02 16:36:04.129:E/AndroidRuntime(319):在android.app.ActivityThread.main(ActivityThread.java:4627)04-02 16:36:04.129:E/AndroidRuntime(319):在java.lang.reflect.Method.invokenactive(Native Method)04-02 16:36:04.129:E/AndroidRuntime(319):在java.lang.reflect.Method.invoke(Method.java:521)04-02 16:36:04.129:E/AndroidRuntime(319):在com.android.internal.os.ZygoteInit$methodandargscaler.run(zgoteinit.java:868)04-02 16:36:04.129:E/AndroidRuntime(319):在com.android.internal.os.ZygoteInit.main(ZygoteInit.java:626)04-02 16:36:04.129:E/AndroidRuntime(319):在dalvik.system.NativeStart.main(Native方法)你有没有尝试在活动的onResume(…)回调上调用AlertDialog.Builder?我已经在我的答案上放了一个例子。希望有帮助!另外,我刚刚看到:你正在传递“null”作为setNeutralButton调用的侦听器。尝试使用“this”(因为您的活动正在实现OnClickListener接口)