0

アクション バーにスピナー ナビゲーションがあり、このためのナビゲーション リスナーがあります。アクティビティが作成されると、リスナー (以下) がデフォルトのスピナー項目を取得します。つまり、作成時にケース 0 が実行され、別のアクティビティが開かれます。アクティビティの作成時にナビゲーションの変更を登録しないようにするにはどうすればよいですか?

    ActionBar.OnNavigationListener navigationListener = new OnNavigationListener() {
        public boolean onNavigationItemSelected(int itemPosition, long itemId) {
            switch(itemPosition) {
            case 0:

                Intent i = new Intent(Main.this, Example.class);
                startActivity(i);
                break;
            case 1:
                Intent i2 = new Intent(Main.this, Example.class);
                startActivity(i2);
                break;
            case 2:
                Intent i3 = new Intent(Main.this, Example.class);
                startActivity(i3);
                break;
            case 3:
                Intent i4 = new Intent(Main.this, Example.class);
                startActivity(i4);
                break;
            }
        return false;
    }
    };

更新: これで解決したと思います.booleanフラグを宣言し、oncreateでfalseに変更しました.

ActionBar.OnNavigationListener navigationListener = new OnNavigationListener() {
    public boolean onNavigationItemSelected(int itemPosition, long itemId) {
        switch(itemPosition) {
        case 0:
            if(flag == true) {
                if(Main.class == Main.class) {

                } else {
            Intent i = new Intent(Main.this, Main.class);
            startActivity(i);   
                }
            }
            if(flag == false) {
                flag = true;
            }
            break;
        case 1:
            Intent i2 = new Intent(Main.this, Example.class);
            startActivity(i2);
            break;
        case 2:
            Intent i3 = new Intent(Main.this, Example.class);
            startActivity(i3);
            break;
        case 3:
            Intent i4 = new Intent(Main.this, Example.class);
            startActivity(i4);
            break;
        }
        return false;
    }
    };
4

1 に答える 1

0

もっと簡単な方法があるかもしれませんが、booleanフラグonCreate()を false に設定してリスナーでそれを確認し、最初に設定したときに true に設定して、Intent最初に実行したときにコードを実行しないようにすることができます。必要なものによっては、onResume()これに戻った場合に実行されないようにすることができますActivity

于 2013-04-16T00:18:49.817 に答える