0

我正在使用TabActivity在我的TabActivity中创建一个android应用程序我点击按钮上的按钮我想弹出一个alertDialog框,我需要向警报添加一个微调框对话框。将错误代码添加到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);' – 2013-03-07 06:29:48

+0

我加了但是同样的问题....... – Vikky 2013-03-07 06:33:36

回答

0

只是改变这一alertAddMedicalRCD.setView(layout);的位置,你inflatted视图

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

你的意思是接下来的说法? – Vikky 2013-03-07 06:50:32

+0

@Vikky是vicky – Pragnani 2013-03-07 06:51:20

+0

没有它的不工作....我认为这个问题与上下文有关。 – Vikky 2013-03-07 06:54:25

0

可以显示单选列表就像微调与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 2013-03-07 07:20:38