2012-11-30 10 views
0

하나의 액티비티에 4 개의 버튼이 있으므로 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 

} 여기

가 로그 캣 내가 얻고있다 :

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

'대화 상자'레이아웃을 확장합니까? – tolgap

+1

이게 무슨 일이 아닌가? 'dialog.setContentView (R.layout.advanced); ' – KickingLettuce

답변

1

당신의 문제는 당신이 당신의 Activity 콘텐츠보기에서 Spinner을 찾기 위해 노력하고 있다는 점이다

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

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

감사합니다. 이것은 비록 작동하지 않았다. 이 단추가 호출되기 전에 LogCat 행이 위로 이동합니다. – KickingLettuce

+0

'Spinner'가'advanced'에 있습니까 ?? –

+0

네, 맞습니다. 당신 말이 맞습니다. 나는 그것들 앞에'dialog'을 추가했고 에러는 사라졌습니다. 하지만 Dialog 쇼가 없습니까? – KickingLettuce

1

교체 문제를입니다.

그냥 전화 :

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

그리고 당신이 가지고있는 Dialog

거기에있는 모든 다른 뷰에 대한

다음 뷰를 찾기 전에, dialog.setContentView()라는 것으로.

관련 문제