2016-04-04 14 views
1

私は、ほぼ8のメニューを持っていると私はすべての8つのマヌスを表示する必要がある管理者のためのユーザ管理とクライアントアクションバーのメニューを非表示にするにはどうすればいいですか?私のアプリで

の2種類があり、ユーザーのために、私は、そのためのユーザー

のための2つのメニューを表示する必要があります私のコードは、履歴書に、私はオプションメニューではそうここ

1以下
@Override 
    public boolean onOptionsItemSelected(MenuItem item) { 

    SharedPreferences s = getSharedPreferences(my_New_SP, 0); 
    HashMap<String, String> map= (HashMap<String, String>) s.getAll(); 

    int id = item.getItemId(); 

if (map.get("usage").equals("Admin")) 
{ 
    if (id == R.id.abc) { 
     Intent mypIntent = new Intent(this, Myp.class); 
     startActivity(mypIntent); 
     return true; 
    } 
    . 
    . 
    . 
    . 
    else if (id == R.id.web1) { 
     Intent webIntent = new Intent(this, Web.class); 
     startActivity(webIntent); 
     return true; 
    } 
    else if (id == R.id.about1) { 
     Intent aboutIntent = new Intent(this, About.class); 
     startActivity(aboutIntent); 
     return true; 
    } 
} 

if (map.get("usage").equals("User")) 
{ 
    if (id == R.id.web1) { 
     Intent webIntent = new Intent(this, Web.class); 
     startActivity(webIntent); 
     return true; 
    } 
    else if (id == R.id.about1) { 
     Intent aboutIntent = new Intent(this, About.class); 
     startActivity(aboutIntent); 
     return true; 
    } 
} 
    return super.onOptionsItemSelected(item); 
} 

を追加していになります後、私はこの

@Override 
public boolean onCreateOptionsMenu(Menu menu) { 

    getMenuInflater().inflate(R.menu.m_mymenu, menu); 
    return true;  
} 

を与えています

私はユーザーIとして選択し、すべてのメニューを表示することができ、それらのうちの2つだけが動作しているので、ここでは作業メニューのみを表示したいいずれかが、)(onCreateOptionsMenuで

答えて

2

...ここ

メニューはアンドロイドのメニューだけでなく、動的メニューから..ですこの種の私を示唆条件をチェックすることができremaningは...

を非表示にします次のように表示または非表示にします。

@Override 
public boolean onCreateOptionsMenu(Menu menu) { 
    MenuInflater menuInflater = getMenuInflater(); 
    menuInflater.inflate(R.layout.m_mymenu, menu); 


SharedPreferences s = getSharedPreferences(my_New_SP, 0); 
HashMap<String, String> map= (HashMap<String, String>) s.getAll(); 

if (map.get("usage").equals("Admin")) 
{ 
MenuItem item = menu.findItem(R.id.usermenu1); 
item.setVisible(false); 
//your all user menu's same like above 

} 


else if (map.get("usage").equals("User")) 
{ 
MenuItem item = menu.findItem(R.id.adminmenu1); 
item.setVisible(false); 
//your all admin menu's same like above 
} 

    return true; 
} 
OnCreateのこの

@Override 
    public boolean onCreateOptionsMenu(Menu menu) { 
     MenuInflater menuInflater = getMenuInflater(); 
     menuInflater.inflate(R.layout.menu, menu); 
     menu1 = menu.findItem(R.id.web1); 
     menu1.setVisible(false); 
     return true; 
    } 

ような何かを行うことで、今

+0

ありがとう@Ranjhid Kumar先生、ここで私は私のコードでこれを使用しています。私はアイテムと "メニュー"でエラーが発生しています。私の更新された質問を確認してください私のコードを変更する必要があります –

+0

@ Don'tBenegative onCreateOptionMenu()内のコードを試してください..私の編集された答えを参照してください.. –

+0

さんは私の更新の質問を参照してくださいサー...私は、エラーが発生しています...ここでは、共有プリファレンスからmap.get( "usage")。equals( "User")を使用しています。再開時に –

0
private Menu menu1; 

今あなたが欲しい、これまでmenu1を表示/非表示にすることができます。他のオプションと同じことをしてください。

関連する問題