2013-02-26 2 views
0

Я использовал, чтобы сделать это:пунктов Скрытие меню без раздувания макет меню

menu.setHeaderTitle("Available Actions"); 

      android.view.MenuItem Edit = menu.findItem(R.id.edit); 
      android.view.MenuItem Delete = menu.findItem(R.id.delete); 

      AdapterContextMenuInfo info = (AdapterContextMenuInfo) menuInfo; 

      int position = info.position; 
      ListView lv = (ListView) v; 
      int firstVisible = lv.getFirstVisiblePosition(); 
      View rowView = lv.getChildAt(position - firstVisible); 

      if (Rateit.isUserLoggedIn == true) { 
       { 

        Edit.setVisible(true); 
        Delete.setVisible(true); 

       } else { 
        Edit.setVisible(false); 
        Delete.setVisible(false); 
       } 
      } else { 
       Edit.setVisible(false); 
       Delete.setVisible(false); 
      } 

Теперь меню настраивается НЕ накачивания макет, но это:

menu.add(2, 1, 0, "Edit"); 
menu.add(2, 2, 0, "Delete"); 

Однако, я не могу найти метод мне нужно назначить itemId (второй параметр в методе add) до Edit/Delete, чтобы я мог установить их видимыми или нет? Кто-нибудь знает, как это сделать?

ответ

2

menu.add возвращает MenuItem, если вы сохраните, что в переменную можно затем изменить видимость из них меню, например

MenuItem edit = menu.add(2, 1, 0, "Edit"); 
MenuItem delete = menu.add(2, 2, 0, "Delete"); 
edit.setVisible(Rateit.isUserLoggedIn); 
delete.setVisible(Rateit.isUserLoggedIn); 

вы также можете просто цепь вызовов вместе, если вам не нужно для доступа к пункт меню позже

menu.add(2, 1, 0, "Edit").setVisible(Rateit.isUserLoggedIn); 
menu.add(2, 2, 0, "Delete").setVisible(Rateit.isUserLoggedIn); 
+0

О, это было легко. Благодарю. – KickingLettuce

2

add() возвращает MenuItem, просто сохранить это значение, чтобы показать/скрыть их всякий раз, когда вы хотите.

MenuItem edit = menu.add(2, 1, 0, "Edit"); 
// Do with "edit" as you please 

Также почитайте о Java naming conventions котором говорится, что переменные, как edit, должны начинаться с прописных букв.

+0

Да, спасибо на нижнем корпусе. Я в процессе изменения всего этого. Я знаю, я новичок. Выбрал другой ответ, но отметил вас на этом честном напоминании. – KickingLettuce

Смежные вопросы