这段代码有什么问题?该申请已被停止。
public void names (View v) {
AlertDialog.Builder alert = new AlertDialog.Builder(this);
LayoutInflater inflater = getLayoutInflater();
alert.setView(inflater.inflate(R.layout.dialog_signin, null));
alert.setTitle("Set players names");
alert.setPositiveButton(R.string.ok, new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int id) {
TextView j=(TextView)findViewById(R.id.textView2);
TextView k=(TextView)findViewById(R.id.textView3);
EditText l=(EditText)findViewById(R.id.player1);
EditText m=(EditText)findViewById(R.id.player2);
String name1 = l.getText().toString();
String name2 = m.getText().toString();
j.setText(name1);
k.setText(name2);
}
});
AlertDialog dialog = alert.create();
dialog.show();
}
logcat的:
06-08 18:07:20.613:D / libEGL(20332):已加载/vendor/lib/egl/libEGL_adreno.so 06-08 18:07:20.613:D / libEGL(20332):已加载/vendor/lib/egl/libGLESv1_CM_adreno.so 06-08 18:07:20.623:D / libEGL(20332):已加载/vendor/lib/egl/libGLESv2_adreno.so 06-08 18:07:20.623:I / Adreno-EGL(20332):: EGL 1.4 QUALCOMM build:(CL4169980) 06-08 18:07:20.623:I / Adreno-EGL(20332):OpenGL ES着色器编译器版本:17.01.10.SPL 06-08 18:07:20.623:I / Adreno-EGL(20332):建造日期:12/01/13 Sun 06-08 18:07:20.623:I / Adreno-EGL(20332):当地分行: 06-08 18:07:20.623:I / Adreno-EGL(20332):远程分支: 06-08 18:07:20.623:I / Adreno-EGL(20332):本地补丁: 06-08 18:07:20.623:I / Adreno-EGL(20332):重建分支: 06-08 18:07:20.673:D / OpenGLRenderer(20332):启用调试模式0 06-08 18:07:26.448:D / AndroidRuntime(20332):关闭VM 06-08 18:07:26.458:W / dalvikvm(20332):threadid = 1:线程退出未捕获异常(组= 0x415898b0) 06-08 18:07:26.458:E / AndroidRuntime(20332):致命异常:主要 06-08 18:07:26.458:E / AndroidRuntime(20332):java.lang.NullPointerException 06-08 18:07:26.458:E / AndroidRuntime(20332):at com.example.game.MainActivity $ 1.onClick(MainActivity.java:87) 06-08 18:07:26.458:E / AndroidRuntime(20332):at com.android.internal.app.AlertController $ ButtonHandler.handleMessage(AlertController.java:171) 06-08 18:07:26.458:E / AndroidRuntime(20332):在android.os.Handler.dispatchMessage(Handler.java:99) 06-08 18:07:26.458:E / AndroidRuntime(20332):在android.os.Looper.loop(Looper.java:213) 06-08 18:07:26.458:E / AndroidRuntime(20332):在android.app.ActivityThread.main(ActivityThread.java:5225) 06-08 18:07:26.458:E / AndroidRuntime(20332):at java.lang.reflect.Method.invokeNative(Native Method) 06-08 18:07:26.458:E / AndroidRuntime(20332):at java.lang.reflect.Method.invoke(Method.java:525) 06-08 18:07:26.458:E / AndroidRuntime(20332):at com.android.internal.os.ZygoteInit $ MethodAndArgsCaller.run(ZygoteInit.java:741) 06-08 18:07:26.458:E / AndroidRuntime(20332):at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:557) 06-08 18:07:26.458:E / AndroidRuntime(20332):at dalvik.system.NativeStart.main(Native Method)
1.
06-08 18:15:27.578: D/AndroidRuntime(20809): Shutting down VM
06-08 18:15:27.578: W/dalvikvm(20809): threadid=1: thread exiting with uncaught exception (group=0x415898b0)
06-08 18:15:27.578: E/AndroidRuntime(20809): FATAL EXCEPTION: main
06-08 18:15:27.578: E/AndroidRuntime(20809): java.lang.NullPointerException
06-08 18:15:27.578: E/AndroidRuntime(20809): at com.example.game.MainActivity$1.onClick(MainActivity.java:92)
06-08 18:15:27.578: E/AndroidRuntime(20809): at com.android.internal.app.AlertController$ButtonHandler.handleMessage(AlertController.java:171)
06-08 18:15:27.578: E/AndroidRuntime(20809): at android.os.Handler.dispatchMessage(Handler.java:99)
06-08 18:15:27.578: E/AndroidRuntime(20809): at android.os.Looper.loop(Looper.java:213)
06-08 18:15:27.578: E/AndroidRuntime(20809): at android.app.ActivityThread.main(ActivityThread.java:5225)
06-08 18:15:27.578: E/AndroidRuntime(20809): at java.lang.reflect.Method.invokeNative(Native Method)
06-08 18:15:27.578: E/AndroidRuntime(20809): at java.lang.reflect.Method.invoke(Method.java:525)
06-08 18:15:27.578: E/AndroidRuntime(20809): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:741)
06-08 18:15:27.578: E/AndroidRuntime(20809): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:557)
06-08 18:15:27.578: E/AndroidRuntime(20809): at dalvik.system.NativeStart.main(Native Method)
06-08 18:15:29.079: I/Process(20809): Sending signal. PID: 20809 SIG: 9
答案 0 :(得分:1)
从NPE
EditText
请尝试以下操作:
final View myLayout = inflater.inflate(R.layout.dialog_screen, null);
alert.setView(myLayout);
alert.setTitle("Set players names");
alert.setPositiveButton("OK", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int id) {
TextView j=(TextView)myLayout.findViewById(R.id.textView2);
TextView k=(TextView)myLayout.findViewById(R.id.textView3);
EditText l=(EditText)myLayout.findViewById(R.id.player1);
EditText m=(EditText)myLayout.findViewById(R.id.player2);
String name1 = l.getText().toString();
String name2 = m.getText().toString();
j.setText(name1);
k.setText(name2);
Log.i("j"+name1, "k"+name2);
}
});