2013-09-27 5 views
1

Я искал в google, но не получил что-то положительное. я не знаю, почему я получаю исключения нулевого указателя на dailog.create оповещения()null исключение указателя с alertdailog

Я создаю dailog по нажатию кнопки что dailog имеет ListView и кнопки в LinearLayout

  viewReport.setOnClickListener(new OnClickListener() { 

       @Override 
       public void onClick(View v) { 
        // TODO Auto-generated method stub 


        //created listMap 
        final String value[]=getKArrayFromMap(listMap); 
        final AlertDialog alertDialog = new AlertDialog.Builder(
          getParent()).create(); 
        LinearLayout linearLayout = new LinearLayout(getParent()); 
        linearLayout.setOrientation(LinearLayout.VERTICAL); 

        Button ok=new Button(getParent()); 

        final ListView lv = new ListView(getParent()); 
        // simple_list_item_checked 
        ArrayAdapter<String> adapter = new ArrayAdapter<String>(getParent(), 
          android.R.layout.simple_list_item_multiple_choice, value); 
        lv.setAdapter(adapter); 
        lv.setChoiceMode(ListView.CHOICE_MODE_MULTIPLE); 
        linearLayout.addView(lv); 
        linearLayout.addView(ok); 
        alertDialog.setView(linearLayout); 

        ok.setOnClickListener(new OnClickListener() { 

         @Override 
         public void onClick(View v) { 

          // some work 
        } 



          ); 
        alertDialog.show(); 


       } 
      }); 

Получил исключение нулевого указателя на:

09-27 11:37:37.033: E/AndroidRuntime(1997): FATAL EXCEPTION: main 
09-27 11:37:37.033: E/AndroidRuntime(1997): java.lang.NullPointerException 
09-27 11:37:37.033: E/AndroidRuntime(1997):  at android.app.AlertDialog.resolveDialogTheme(AlertDialog.java:142) 
09-27 11:37:37.033: E/AndroidRuntime(1997):  at android.app.AlertDialog$Builder.<init>(AlertDialog.java:359) 
09-27 11:37:37.033: E/AndroidRuntime(1997):  at com.cloudchowk.his.doctor.laboratory.BindDetailsActivity$BackGroundProcess$6.onClick(BindDetailsActivity.java:794) 
09-27 11:37:37.033: E/AndroidRuntime(1997):  at android.view.View.performClick(View.java:4084) 
09-27 11:37:37.033: E/AndroidRuntime(1997):  at android.view.View$PerformClick.run(View.java:16966) 
09-27 11:37:37.033: E/AndroidRuntime(1997):  at android.os.Handler.handleCallback(Handler.java:615) 
09-27 11:37:37.033: E/AndroidRuntime(1997):  at android.os.Handler.dispatchMessage(Handler.java:92) 
09-27 11:37:37.033: E/AndroidRuntime(1997):  at android.os.Looper.loop(Looper.java:137) 
09-27 11:37:37.033: E/AndroidRuntime(1997):  at android.app.ActivityThread.main(ActivityThread.java:4745) 
09-27 11:37:37.033: E/AndroidRuntime(1997):  at java.lang.reflect.Method.invokeNative(Native Method) 
09-27 11:37:37.033: E/AndroidRuntime(1997):  at java.lang.reflect.Method.invoke(Method.java:511) 
09-27 11:37:37.033: E/AndroidRuntime(1997):  at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:786) 
09-27 11:37:37.033: E/AndroidRuntime(1997):  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:553) 
09-27 11:37:37.033: E/AndroidRuntime(1997):  at dalvik.system.NativeStart.main(Native Method) 

линии нет 794:

final AlertDialog alertDialog = new AlertDialog.Builder(
          getParent()).create(); 
+0

показать полный LogCat этого исключения – damian

+0

использования 'AlertDialog. Builder alertDialogBuilder = new AlertDialog.Builder ( \t \t \t \t \t classname.this); ' –

+0

В чем проблема с getParent() – HimanshuR

ответ

0

изменения на это:

final AlertDialog alertDialog = new AlertDialog.Builder(
         yourActivity.this).create(); 

Вы должны изменить YourActivity.this на то, где вы должны использовать GetParent();

+0

получили исключение исключения nullpointer в новом Linringayout (getParent()) – HimanshuR

+0

проверить обновленный ответ. – Piyush

+0

В чем проблема с getParent() – HimanshuR

0

ли этот способ может помочь вам

viewReport.setOnClickListener(new OnClickListener() { 

      @Override 
      public void onClick(View v) { 
       // TODO Auto-generated method stub 


       //created listMap 
       final String value[]=getKArrayFromMap(listMap); 
       final AlertDialog alertDialog = new AlertDialog.Builder(
         MainActivity.this).create(); 
       LinearLayout linearLayout = new LinearLayout(MainActivity.this); 
       linearLayout.setOrientation(LinearLayout.VERTICAL); 

       Button ok=new Button(MainActivity.this); 

       final ListView lv = new ListView(MainActivity.this); 
       // simple_list_item_checked 
       ArrayAdapter<String> adapter = new ArrayAdapter<String>(MainActivity.this, 
         android.R.layout.simple_list_item_multiple_choice, value); 
       lv.setAdapter(adapter); 
       lv.setChoiceMode(ListView.CHOICE_MODE_MULTIPLE); 
       linearLayout.addView(lv); 
       linearLayout.addView(ok); 
       alertDialog.setView(linearLayout); 

       ok.setOnClickListener(new OnClickListener() { 

        @Override 
        public void onClick(View v) { 

         // some work 
       } 



         ); 
       alertDialog.show(); 


      } 
     }); 


    } 
+0

получил исключение исключения nullpointer в новом Linringayout (getParent()) – HimanshuR

+0

Теперь я редактирую сообщение post –

+0

В чем проблема с getParent() – HimanshuR

0

Я сделал это просто мимо этого кода,

okay.setOnClickListener(new OnClickListener() { 
     @Override 
     public void onClick(View v) { 
      final AlertDialog alertDialog = new AlertDialog.Builder(
        MainActivity.this).create(); 
      LinearLayout linearLayout = new LinearLayout(
        getApplicationContext()); 
      linearLayout.setOrientation(LinearLayout.VERTICAL); 
      Button ok = new Button(getApplicationContext()); 
      final ListView lv = new ListView(getApplicationContext()); 
      lv.setChoiceMode(ListView.CHOICE_MODE_MULTIPLE); 
      ArrayAdapter<String> adapter = new ArrayAdapter<String>(
        getApplicationContext(), 
      android.R.layout.simple_list_item_multiple_choice, 
        value); 
      lv.setAdapter(adapter); 
      linearLayout.addView(lv); 
      linearLayout.addView(ok); 
      alertDialog.setView(linearLayout); 
      ok.setOnClickListener(new OnClickListener() { 
       @Override 
       public void onClick(View v) { 
        // TODO Auto-generated method stub 
        Toast.makeText(getApplicationContext(), 
          "asdhfkja is done", Toast.LENGTH_LONG).show(); 
       } 
      }); 
      alertDialog.show(); 
     } 
    }); 

или просто изменить

final AlertDialog alertDialog = new AlertDialog.Builder(
        YOUR_ACTIVITY.this).create(); 

и заменить все getParent() с getApplicationContect()

Смежные вопросы