0

アクティビティには 4 つのボタンがあるため、onClick メソッドを使用しています。そのうちの 1 つ (これが問題です。herEe は、内部に 2 つのスピナーを含むダイアログを表示する必要があります。コードは次のとおりです。

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);

誰が問題が何であるかを見ることができますか? セリフやスピナーは何回もやったけど、一緒にやるのは初めて。これを行う方法がわからないだけなのか、見落とした小さなことなのかはわかりません。

4

2 に答える 2

1

問題は、コンテンツビューSpinnerからを見つけようとしていることです。Activity

電話するだけです:

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

そして、そこにある他のすべてのビューについてはDialog

dialog.setContentView()これらのビューを探す前に、に電話する必要があります。

于 2012-11-30T18:04:11.647 に答える
1

ここに問題があると思います

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

と置換する

 Button Submit = (Button) dialog .findViewById(R.id.buttonAdvancedSubmit);
于 2012-11-30T18:01:54.837 に答える