2017-03-25 7 views
0

ViewPagerでTableLayoutのメニューを非表示にしようとしています。ソリューションタブでのみメニューが必要です。私はonPrepareOptionsmenuを使用して、ソリューションタブ以外のタブでメニューを非表示にしました。事は私のonOptionsItemSelectedは動作していません。onOptionsSelectedが機能していません

コード:事前に

@Override 
public boolean onCreateOptionsMenu(Menu menu) { 
    MenuInflater inf = getMenuInflater(); 
    inf.inflate(R.menu.simpleadd,menu); 

    // +getMenuInflater().inflate(R.menu.simpleadd, menu); 
    onPrepareOptionsMenu(menu); 
    return super.onCreateOptionsMenu(menu); 
} 

@Override 
public boolean onPrepareOptionsMenu(Menu menu) { 

    if (viewpager.getCurrentItem()==0){ 
     menu.findItem(R.id.simpleadd).setVisible(false); 
    } else if(viewpager.getCurrentItem()==1){ 
     menu.findItem(R.id.simpleadd).setVisible(false); 
    } else if(viewpager.getCurrentItem()==2){ 
     menu.findItem(R.id.simpleadd).setVisible(true); 
    } else if(viewpager.getCurrentItem()==3){ 
     menu.findItem(R.id.simpleadd).setVisible(false); 
    }else if(viewpager.getCurrentItem()==4){ 
     menu.findItem(R.id.simpleadd).setVisible(false); 
    } 
    return super.onCreateOptionsMenu(menu); 
} 

@Override 
public boolean onOptionsItemSelected(MenuItem item) { 
       switch (item.getItemId()){ 
        case R.id.simpleadd: 
         startActivity(new Intent(this,NewSolution.class)); 
      } 
    return super.onOptionsItemSelected(item); 
} 

おかげで、あなたはonOptionsItemSelectedのスイッチケースにレイアウトの名前を使用している

+0

は、' 'super.onCreateOptionsMenu(メニュー)を入力し、このタイプミスかではないでしょうか?私はそれが 'super.onPrepareOptionsMenu(メニュー)' – koceeng

+0

であるべきだと思うので...働いていない...ありがとう –

答えて

0

代わりにメニュー項目のIDを使用します。

+0

両者は実際には同じです –

+0

@Arpittodewaleその場合にtrueを返してください。 –

+0

までスイッチ状態、デバッグブレークポイントが正しい場合、エラーが発生します。 –

0

まず、アイテムIDを取得してレイアウトIDと比較する必要があります。 これは機能の設定に役立ちます。あなたの参照のためのコード の下のサンプルを見つけてください。 onPrepareOptionsMenu` `インサイド

@Override 
public boolean onOptionsItemSelected(MenuItem item) { 

int id = item.getItemId(); 

      if (id == R.id.simpleadd) { 
        // execute your code here 
    } 

    return super.onOptionsItemSelected(item); 
} 
関連する問題