2016-08-10 5 views
0

私は2つのメニュー項目を追加しました。どちらもうまくいきますが、メニューボタンを押すたびに、新しいメニュー項目が古いメニュー項目の横に表示されます。ここに私のメニュー項目のXMLメニュー項目はすべてのメニューボタンを押し続けます

<menu xmlns:android="http://schemas.android.com/apk/res/android" 
xmlns:app="http://schemas.android.com/apk/res-auto"> 


<item 
android:title="Search" 
android:icon="@drawable/search_white_24dp" 
android:id="@+id/searchmenu" 
app:showAsAction="always"> 

</item> 
<item 
android:icon="@drawable/settings_white_24dp" 
android:title="Setting" 
android:id="@+id/settingmenu" 
app:showAsAction="always" 
/> 


</menu> 

とは、私のコード

@Override 
public boolean onCreateOptionsMenu(Menu menu) { 
    getMenuInflater().inflate(R.menu.menu, menu); 
    return super.onCreateOptionsMenu(menu); 
} 

@Override 
public boolean onOptionsItemSelected(MenuItem item) { 

    switch (item.getItemId()) { 

     case R.id.searchmenu: 
      editText = DuwaManager.openSearchBox(this, 
getSupportActionBar(), "DuwaListView"); 
      break; 
     case R.id.settingmenu: 

      break; 

     case R.id.home: 
      NavUtils.navigateUpFromSameTask(this); 
      break; 
    } 

ですuは以下

enter image description here

を見ることができ、以下のような私が間違っているところ助けてください?

申し訳ありませんが、これは私が別のメニューを持っている私の2番目の質問)私は2番目の質問

2を持って、長いを取得しますが。 xmlには検索アイコンの代わりに共有アイコンがありますが、同じコードメニューでアクションバーに表示しようとすると、アクションバーに表示されません。以下の私の別のメニューXML

<menu xmlns:android="http://schemas.android.com/apk/res/android" 
xmlns:app="http://schemas.android.com/apk/res-auto" 
> 
<item 
android:title="Share" 
android:icon="@drawable/share_white" 
android:id="@+id/share_tarika" 
app:showAsAction="always" 
/> 
<item android:title="Setting" 
    android:icon="@drawable/settings_white_24dp" 
    android:id="@id/settingmenu" 
    app:showAsAction="always"/> 
</menu> 

とそのコードです

@Override 
public boolean onCreateOptionsMenu(Menu menu) { 
    getMenuInflater().inflate(R.menu.tarika_menu, menu); 
    return super.onCreateOptionsMenu(menu); 
} 

@Override 
public boolean onOptionsItemSelected(MenuItem item) { 

    switch (item.getItemId()) { 

     case R.id.share_tarika: 

      break; 
     case R.id.settingmenu: 

      break; 
    } 
    return super.onOptionsItemSelected(item); 
} 
+0

あなたは 'onOptionsItemSelected()'から何を返そうとしていますか? – Shaishav

+0

2番目の質問 – FaisalAhmed

答えて

2

この

@Override 
    public void onCreateOptionsMenu(Menu menu) { 
     menu.clear();// use menu.clear 
     MenuInflater inflater = getMenuInflater();  
     inflater.inflate(R.menu."your current activity name ", menu); 
    return true; 
} 

使用menu.clear()

+0

で私を助けてください。真実または偽以外に何を返さなければならないのですか? – FaisalAhmed

+0

すべての場合にtrueを返し、デフォルトではreturn super.onOptionsItemSelected(item); – Moulesh

+0

更新された応答を確認してください。それはあなたのために働くのか知っています – Moulesh

1

行うための最善のは、このようですが試してみてください。

@Override 
public void onCreateOptionsMenu(Menu menu) { 
    getMenuInflater().inflate(R.menu."your current activity name ", menu); 
return true; 
} 
メニューが1つだけの場合は

です。次に、アクティビティページからメニューを設定し、trueを返し、メニューをクリアする必要はありません。重複したメニューは表示されません。

フラグメントを2つ使用し、フラグメントごとにアクティビティメニューを変更する必要がある場合は、メニューをクリアして新しいものでリセットするだけです。

フラグメントでonCreateOptionsMenu(メニューメニュー)を使用している場合は、それらを削除します。

関連する問題