2012-11-30 18 views
0

我在一個activity中有四個按鈕,所以我使用了一個onClick方法。其中一人(那是問題herEe應該簡單地顯示一個對話框,裏面兩個微調這裏是代碼:在一個onClick中放置一個微調器

public void onClick(View view) { 

     switch (view.getId()) { 

     case R.id.bAddNew: 

     // first button - not related 

      break; 

     case R.id.bAdvancedSettings: 

      // Spinner 1 
      plan = (Spinner) findViewById(R.id.spinner1); 
      ArrayAdapter<CharSequence> spinner1Adapter = ArrayAdapter 
        .createFromResource(this, R.array.paymentplan, 
          android.R.layout.simple_spinner_item); 
      spinner1Adapter 
        .setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); 
      plan.setAdapter(spinner1Adapter); 
      plan.setSelection(0); 
      plan.setOnItemSelectedListener(new MyOnItemSelectedListenerPlan()); 

      // Spinner 2 
      display = (Spinner) findViewById(R.id.spinner2); 
      ArrayAdapter<CharSequence> spinner2Adapter = ArrayAdapter 
        .createFromResource(this, R.array.quickview, 
          android.R.layout.simple_spinner_item); 
      spinner2Adapter 
        .setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); 
      display.setAdapter(spinner2Adapter); 
      display.setSelection(0); 
      display.setOnItemSelectedListener(new MyOnItemSelectedListenerDisplay()); 

      final Dialog dialog = new Dialog(ManageDebts.this); 
      dialog.setContentView(R.layout.advanced); 
      dialog.setTitle("Advanced Details"); 
      dialog.setCancelable(true); 

      Button Submit = (Button) findViewById(R.id.buttonAdvancedSubmit); 
      Submit.setOnClickListener(new OnClickListener() { 

       public void onClick(View v) { 

        dialog.dismiss(); 

       } 
      }); 

break; 

// next two buttons 

}

下面是logcat的我越來越:

11-30 09:50:52.305: E/AndroidRuntime(10747): FATAL EXCEPTION: main 
11-30 09:50:52.305: E/AndroidRuntime(10747): java.lang.IllegalStateException: Could not execute method of the activity 
11-30 09:50:52.305: E/AndroidRuntime(10747): at android.view.View$1.onClick(View.java:3597) 
11-30 09:50:52.305: E/AndroidRuntime(10747): at android.view.View.performClick(View.java:4202) 
11-30 09:50:52.305: E/AndroidRuntime(10747): at android.view.View$PerformClick.run(View.java:17340) 
11-30 09:50:52.305: E/AndroidRuntime(10747): at android.os.Handler.handleCallback(Handler.java:725) 
11-30 09:50:52.305: E/AndroidRuntime(10747): at android.os.Handler.dispatchMessage(Handler.java:92) 
11-30 09:50:52.305: E/AndroidRuntime(10747): at android.os.Looper.loop(Looper.java:137) 
11-30 09:50:52.305: E/AndroidRuntime(10747): at android.app.ActivityThread.main(ActivityThread.java:5039) 
11-30 09:50:52.305: E/AndroidRuntime(10747): at java.lang.reflect.Method.invokeNative(Native Method) 
11-30 09:50:52.305: E/AndroidRuntime(10747): at java.lang.reflect.Method.invoke(Method.java:511) 
11-30 09:50:52.305: E/AndroidRuntime(10747): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:793) 
11-30 09:50:52.305: E/AndroidRuntime(10747): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:560) 
11-30 09:50:52.305: E/AndroidRuntime(10747): at dalvik.system.NativeStart.main(Native Method) 
11-30 09:50:52.305: E/AndroidRuntime(10747): Caused by: java.lang.reflect.InvocationTargetException 
11-30 09:50:52.305: E/AndroidRuntime(10747): at java.lang.reflect.Method.invokeNative(Native Method) 
11-30 09:50:52.305: E/AndroidRuntime(10747): at java.lang.reflect.Method.invoke(Method.java:511) 
11-30 09:50:52.305: E/AndroidRuntime(10747): at android.view.View$1.onClick(View.java:3592) 
11-30 09:50:52.305: E/AndroidRuntime(10747): ... 11 more 
11-30 09:50:52.305: E/AndroidRuntime(10747): Caused by: java.lang.NullPointerException 
11-30 09:50:52.305: E/AndroidRuntime(10747): at com.---.---.ManageDebts.onClick(ManageDebts.java:211) 
11-30 09:50:52.305: E/AndroidRuntime(10747): ... 14 more 

線211是

plan.setAdapter(spinner1Adapter); 

任何人都可以看到的問題是什麼?我已經做了很多對話的和微調,但這種爲t他第一次在一起。不知道我是否不知道如何做到這一點,或者它只是我忽視的小事。

+1

你是否爲'Dialog'充氣佈局? – tolgap

+1

是不是這樣做? 'dialog.setContentView(R.layout.advanced);' – KickingLettuce

回答

1

我想這裏的問題是

Button Submit = (Button) findViewById(R.id.buttonAdvancedSubmit); 

更換

Button Submit = (Button) dialog .findViewById(R.id.buttonAdvancedSubmit); 
+0

謝謝。這雖然沒有奏效。在調用此按鈕之前,LogCat行會跳轉。 – KickingLettuce

+0

Spinner'在'advanced'裏? –

+0

是的,我知道你是對的。我在前面添加了「對話框」,錯誤消失了。但沒有對話框顯示? – KickingLettuce

1

你的問題是,你要找到你的Activity內容視圖的Spinner

只要致電:

plan = (Spinner) dialog.findViewById(R.id.spinner1); 

而對於那些在那裏爲Dialog

你有其他意見,呼籲dialog.setContentView(),尋找這些觀點之前。

相關問題