簡體   English   中英

onOptionsItemSelected 問題

[英]onOptionsItemSelected issue

我為我的數據庫 class 創建了一個選項菜單。啟動選項菜單后,我想通過單擊指定按鈕進行所需的活動。

但問題是,如果我點擊任何選項,我將被定向到MainMenu.class 任何想法為什么會這樣?

代碼:

    @Override
    public boolean onCreateOptionsMenu(Menu menu)
    {
        new MenuInflater(this).inflate(R.menu.optionmenu, menu);
        return(super.onCreateOptionsMenu(menu));
    }


    public boolean onOptionsItemSelected ( MenuItem item){
        switch (item.getItemId())
        {
        case R.id.item1:
        { Intent r=new Intent(Database.this,MainMenu.class);
            startActivity(r);
        }

        case R.id.takesurvey:
        { 
            Toast toast=Toast.makeText(this, "check", 2000);
               toast.show();
            Intent r1=new Intent(Database.this,SurveyActivity.class);
            startActivity(r1);
        }

        case R.id.viewstats:
        { Intent r2=new Intent(Database.this,Stats.class);
            startActivity(r2);
        }

        case R.id.changesort:
        { Intent r3=new Intent(Database.this,MainMenu.class);
            startActivity(r3);
        }

        case R.id.menuexit:
        { Intent r4=new Intent(Database.this,MainMenu.class);
            startActivity(r4);
        }
        }
        return true;
    }

看起來您在每種情況下都缺少 break 語句。

 public boolean onOptionsItemSelected ( MenuItem item){
        switch (item.getItemId())
        {
        case R.id.item1:
        startActivity(new Intent(Database.this,MainMenu.class));
        break;

        case R.id.takesurvey:
        Toast.makeText(this, "check", 2000).show();
        startActivity(new Intent(Database.this,SurveyActivity.class));
        break;

        case R.id.viewstats:
        startActivity(new Intent(Database.this,Stats.class));
        break;

        case R.id.changesort:
        startActivity(new Intent(Database.this,MainMenu.class));
        break;

        case R.id.menuexit:
        startActivity(new Intent(Database.this,MainMenu.class));
        break;

        return true;
    }

對於 onOptionsItemSelected() 中 Switch 語句中的每個條件,您必須返回 true。 如果你處理了這個案例,那么你必須返回 true,如果你不這樣做,那么你應該調用它的 super class 實現。

case R.id.item1:
    { Intent r=new Intent(Database.this,MainMenu.class);
        startActivity(r);
        return true;
    }

Go 通過此了解更多詳情http://developer.android.com/guide/topics/ui/menus.html#options-menu

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM