Textview setText из EditText в диалоговом окне предупреждения

  • Что не так с этим кодом? Приложение остановлено.

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

    Логкат:

    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): Дата сборки: 01.12.13 Вс 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): завершение работы виртуальной машины 06-08 18:07:26.458: W/dalvikvm( 20332): threadid=1: поток завершается с необработанным исключением (группа=0x415898b0) 06-08 18:07:26.4 58: E/AndroidRuntime(20332): НЕИСПРАВНОЕ ИСКЛЮЧЕНИЕ: main 06-08 18:07:26.458: E/AndroidRuntime(20332): java.lang.NullPointerException 06-08 18:07:26.458: E/AndroidRuntime(20332): в com.example.game.MainActivity$1.onClick(MainActivity.java:87) 06-08 18:07:26.458: E/AndroidRuntime(20332): в 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): в java.lang.reflect.Method.invokeNative(собственный метод) 06-08 18:07:26.458: E/AndroidRuntime(20332): в java.lang.reflect .Method.invoke(Method.java:525) 06-08 18:07:26.458: E/AndroidRuntime(20332): в com.android.internal. os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:741) 06-08 18:07:26.458: E/AndroidRuntime(20332): в com.android.internal.os.ZygoteInit.main(ZygoteInit.java:557) 06 -08 18:07:26.458: E/AndroidRuntime(20332): в dalvik.system.NativeStart.main(собственный метод)

    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
    

person user3719971    schedule 08.06.2014    source источник
comment
Пожалуйста, опубликуйте трассировку ошибки logcat   -  person daentech    schedule 08.06.2014
comment
+1, нам нужна трассировка ошибки logcat   -  person JRad the Bad    schedule 08.06.2014


Ответы (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);
        }
    });
person Manishika    schedule 08.06.2014