0

Я создаю приложение для Android с помощью TabActivity, в моей TabActivity У меня есть кнопка при нажатии на кнопку, которую я хочу всплывать в окне alertDialog, мне нужно добавить счетчик для предупреждения диалоговое окно.Ошибка при добавлении Spinner в alertDialog

Код кнопки мыши приведен ниже

addMedicalRCD.setOnClickListener(new OnClickListener() 
{ 

    public void onClick(View arg0) 
    { 
     View layout = inflater.inflate(R.layout.patient_add_medical_record, null); 
     spinnerMedicalType=(Spinner)layout.findViewById(R.id.spinner_medicalRCD_type); 
     addItemsT0SpinnerMedicalRCDType(); 

     alertAddMedicalRCD = new AlertDialog.Builder(getParent()); 
     alertAddMedicalRCD.setTitle("Add new medical record"); 
     alertAddMedicalRCD.setView(layout); 


    } 
}); 

А вот тело метода addItemsT0SpinnerMedicalRCDType();

private void addItemsT0SpinnerMedicalRCDType() 
{ 
    String[] s =new String[] {"Prescription","Email","Doctor rounds","Phone","Other"}; 
    ArrayAdapter<String>adapter = new ArrayAdapter<String>(context, android.R.layout.simple_spinner_item, s); 
    adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); 
    spinnerMedicalType.setAdapter(adapter); 
} 

И в методе OnCreate я определил context=this;

, но когда я нажимаю на блесны не показаны варианты. как решить эту проблему. пожалуйста, помогите мне

Моего LogCat

03-07 13:25:29.501: E/AndroidRuntime(1339): FATAL EXCEPTION: main 
03-07 13:25:29.501: E/AndroidRuntime(1339): android.view.WindowManager$BadTokenException: Unable to add window -- token null is not for an application 
03-07 13:25:29.501: E/AndroidRuntime(1339): at android.view.ViewRoot.setView(ViewRoot.java:531) 
03-07 13:25:29.501: E/AndroidRuntime(1339): at android.view.WindowManagerImpl.addView(WindowManagerImpl.java:177) 
03-07 13:25:29.501: E/AndroidRuntime(1339): at android.view.WindowManagerImpl.addView(WindowManagerImpl.java:91) 
03-07 13:25:29.501: E/AndroidRuntime(1339):  at android.app.Dialog.show(Dialog.java:241) 
03-07 13:25:29.501: E/AndroidRuntime(1339):  at android.app.AlertDialog$Builder.show(AlertDialog.java:802) 
03-07 13:25:29.501: E/AndroidRuntime(1339):  at android.widget.Spinner.performClick(Spinner.java:260) 
03-07 13:25:29.501: E/AndroidRuntime(1339):  at android.view.View$PerformClick.run(View.java:9080) 
03-07 13:25:29.501: E/AndroidRuntime(1339):  at android.os.Handler.handleCallback(Handler.java:587) 
03-07 13:25:29.501: E/AndroidRuntime(1339):  at android.os.Handler.dispatchMessage(Handler.java:92) 
03-07 13:25:29.501: E/AndroidRuntime(1339):  at android.os.Looper.loop(Looper.java:123) 
03-07 13:25:29.501: E/AndroidRuntime(1339):  at android.app.ActivityThread.main(ActivityThread.java:3683) 
03-07 13:25:29.501: E/AndroidRuntime(1339):  at java.lang.reflect.Method.invokeNative(Native Method) 
03-07 13:25:29.501: E/AndroidRuntime(1339):  at java.lang.reflect.Method.invoke(Method.java:507) 
03-07 13:25:29.501: E/AndroidRuntime(1339):  at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:839) 
03-07 13:25:29.501: E/AndroidRuntime(1339):  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:597) 
03-07 13:25:29.501: E/AndroidRuntime(1339):  at dalvik.system.NativeStart.main(Native Method) 
+0

set 'adapter.setDropDownViewResource (android.R.layout.simple_spinner_dropdown_item);' –

+0

i добавлен, но такая же проблема ....... – Vikky

ответ

0

просто изменить положение этого alertAddMedicalRCD.setView(layout); после inflatted вида

View layout = inflater.inflate(R.layout.patient_add_medical_record, null); 
+0

u означает самое следующее утверждение ?? – Vikky

+0

@Vikky да vicky – Pragnani

+0

нет все еще его не работает .... я думаю, проблема связана с контекстом. – Vikky

0

Вы можете показать Единый список выбора, как Spinner с помощью AlertDilog при нажатии на кнопке.

enter image description here

enter image description here

@Override 
    public void onClick(View v) { 
     AlertDialog.Builder builder = new AlertDialog.Builder(
       v.getContext()); 
     builder.setTitle(R.string.select_lanuage_txt); 
     builder.setIcon(R.drawable.dialog_arrow); 
     builder.setSingleChoiceItems(items, -1, 
       new DialogInterface.OnClickListener() { 
        public void onClick(DialogInterface dialog, int which) { 
         dialog.dismiss(); 
         Toast.makeText(MainActivity.this, "Selected Index"+" "+which, Toast.LENGTH_LONG).show(); 
        } 
       }).setPositiveButton(
       getResources().getString(R.string.Cancel), 
       new DialogInterface.OnClickListener() { 
        public void onClick(DialogInterface dialog, 
          int whichButton) { 
         dialog.dismiss(); 
        } 
       }); 
     alert = builder.create(); 
     alert.show(); 

    } 

Для получения подробной информации и Исходный код пройти через мой Android блог.

http://amitandroid.blogspot.in/2013/03/android-alert-dialog-with-single-choice.html

Надежда этот блог поможет вам для достижения ваших требований.

Спасибо,

enter image description here

Теперь я добавил EditText к диалогу. это вы ищете?

+0

thnx .... но мой предупреждающий dailog содержит один editText также .... – Vikky