0

TextView、ListView、および Spinner を含むアクティビティがあります。スピナーには 4 つのアイテムが含まれています。onCreate では、現在のアクティビティに一致する値の 1 つがスピナーに割り当てられます。ユーザーが別の項目をクリックすると、新しいインテントを開始する必要があります (同じレイアウトの新しいアクティビティ)。ただし、スピナーに関するコードをコメント解除したままにすると、エラーが発生します。私のアクティビティは、「実装OnItemSelectedListener」とイベントの実装なしで正常に機能します。

スピナーの私のコード:

public class ViziteIeri extends Activity implements OnItemSelectedListener{
...

protected void onCreate(Bundle icicle) {
        super.onCreate(icicle);
        setContentView(R.layout.my_new_screen);
                Spinner spinner = (Spinner) findViewById(R.id.spinner1);
        ArrayAdapter<CharSequence> adapter = ArrayAdapter.createFromResource(this,
                R.array.liste_array, android.R.layout.simple_spinner_item);
adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
        spinner.setAdapter(adapter);
                spinner.setOnItemSelectedListener(this);
}

@Override
    public void onItemSelected(AdapterView<?> parent, View view, 
            int pos, long id) {
        // An item was selected. You can retrieve the selected item using
        // parent.getItemAtPosition(pos)

        Toast toast1 = Toast.makeText(getApplicationContext(),""+parent.getItemAtPosition(pos), Toast.LENGTH_SHORT);
        toast1.show();

        Intent i = null;
        if(parent.getItemIdAtPosition(pos) == 1) {
            i=new Intent(ViziteIeri.this, ViziteAzi.class);
        }
        if(parent.getItemIdAtPosition(pos) == 2) {
            i=new Intent(ViziteIeri.this, ViziteMaine.class);
        }
        if(parent.getItemIdAtPosition(pos) == 3) {
            i=new Intent(ViziteIeri.this, ViziteViitor.class);
        }
        startActivity(i);           

    }

    @Override
    public void onNothingSelected(AdapterView<?> arg0) {
        // TODO Auto-generated method stub

    }
}

それで、私は何を間違っていますか?以前のコードで申し訳ありません。貼り付けのためだけにアクティビティの名前を変更しました。現在、それらは修正されています。もちろん、私の実際のアプリでは、アクティビティには適切な名前が付けられています。そうしないと、アプリを実行できませんでした (そうですか?)

@CodeMonkey - エラー ログは次のとおりです。

`07-29 23:56:56.155: D/AndroidRuntime(2474): Shutting down VM
07-29 23:56:56.155: W/dalvikvm(2474): threadid=1: thread exiting with uncaught exception (group=0x40015560)
07-29 23:56:56.174: E/AndroidRuntime(2474): FATAL EXCEPTION: main
07-29 23:56:56.174: E/AndroidRuntime(2474): java.lang.NullPointerException
07-29 23:56:56.174: E/AndroidRuntime(2474):     at android.app.Instrumentation.execStartActivity(Instrumentation.java:1374)
07-29 23:56:56.174: E/AndroidRuntime(2474):     at android.app.Activity.startActivityForResult(Activity.java:2827)
07-29 23:56:56.174: E/AndroidRuntime(2474):     at android.app.Activity.startActivity(Activity.java:2933)
07-29 23:56:56.174: E/AndroidRuntime(2474):     at com.softwarex.mydualscreenpro.ViziteIeri.onItemSelected(ViziteIeri.java:89)
07-29 23:56:56.174: E/AndroidRuntime(2474):     at android.widget.AdapterView.fireOnSelected(AdapterView.java:871)
07-29 23:56:56.174: E/AndroidRuntime(2474):     at android.widget.AdapterView.access$200(AdapterView.java:42)
07-29 23:56:56.174: E/AndroidRuntime(2474):     at android.widget.AdapterView$SelectionNotifier.run(AdapterView.java:837)
07-29 23:56:56.174: E/AndroidRuntime(2474):     at android.os.Handler.handleCallback(Handler.java:587)
07-29 23:56:56.174: E/AndroidRuntime(2474):     at android.os.Handler.dispatchMessage(Handler.java:92)
07-29 23:56:56.174: E/AndroidRuntime(2474):     at android.os.Looper.loop(Looper.java:123)
07-29 23:56:56.174: E/AndroidRuntime(2474):     at android.app.ActivityThread.main(ActivityThread.java:3683)
07-29 23:56:56.174: E/AndroidRuntime(2474):     at java.lang.reflect.Method.invokeNative(Native Method)
07-29 23:56:56.174: E/AndroidRuntime(2474):     at java.lang.reflect.Method.invoke(Method.java:507)
07-29 23:56:56.174: E/AndroidRuntime(2474):     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:839)
07-29 23:56:56.174: E/AndroidRuntime(2474):     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:597)
07-29 23:56:56.174: E/AndroidRuntime(2474):     at dalvik.system.NativeStart.main(Native Method)`

紛らわしいのでアクティビティ名を元に戻しました。したがって、アクティビティ名は「ViziteIeri」です また、イベントの割り当てをコメント解除すると、上記のエラースタックを受信せずにアクティビティを実行できません

4

2 に答える 2

0

あなたのActivityクラス名がmyActivityとても使用されているため

i=new Intent(myActivity.this, ViziteAzi.class);

代わりに

i=new Intent(ViziteIeri.this, ViziteAzi.class);

それはあなたのOnItemSelectedListener問題を解決します。

于 2013-07-29T23:41:15.830 に答える