Java 程序无法正常运行(对话框)
我以Android书籍为例起草了一个项目。 但是,也出现了一些问题: 当我点击一个选项时,程序将退出程序并返回一条消息“应用程序意外停止。请重试” 有人能帮我吗 以下是源代码: 包com.example.ch07_dialogaskJava 程序无法正常运行(对话框),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
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接口)