2016-04-04 19 views
1

Neredeyse 8 menüleri var ve ben her 8 Manus'u göstermek gerekir Admin için kullanıcıların yönetici ve müşteriBazı menüleri eylem çubuğunda gizleme nasıl yapılır? Benim app

iki tür var ve kullanıcı için bunun için kullanıcı

için 2 menülerin gösterilmesi gerekir Ben Verilen var bu

@Override 
public boolean onCreateOptionsMenu(Menu menu) { 

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

kodum özgeçmiş ben Seçenekler menülerde Yani burada bir

@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); 
} 

altında ekliyorum olacak sonra Ben kullanıcı için sadece iki ve göstermek için 8 göstermek istiyorum ..

Ama ben kullanıcı olarak seçtiğim ve tüm menüler görebildiğim ve sadece iki tanesi çalışıyor .. bu yüzden burada sadece çalışma menülerini göstermek istiyorum kalanın, onCreateOptionsMenu() in

cevap

2

...

İşte

menüleri android menülerden yalnızca dinamik değil menüleri vardır ..

herhangi birinin bu tür me önerebilirsiniz .. gizlemek koşul için kontrol etmelidir ve aşağıdaki şekilde göster veya gizle:

@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; 
} 
+0

teşekkürler @Ranjhid Kumar efendim, Burada bunu kodumda kullanıyorum ve öğe ve hata durumunda hata alıyorum. lütfen benim güncellenmiş soruyu kontrol edin nerede kodumu değiştirmem gerekiyor –

+0

@ NotBomeative onCreateOptionMenu() içindeki kodu deneyin .. benim düzenlenmiş cevabımı görün .. –

+0

efendim lütfen benim güncelleme sorusu bakın efendim ... Hata alıyorum ... İşte ben map.get ("use") kullanıyorum. Paylaşılan prefs dan equals ("Kullanıcı") .. –

0
private Menu menu1; 

şimdi OnCreate şimdi/gizlemek istediğiniz her zamankinden menu1 gösterebilir bu

@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; 
    } 

böyle bir şey yapmak içinde. Diğer seçenekler için aynı yapın

İlgili konular