2013-10-03 3 views
0

Im работает над простым музыкальным плеером для моего вступления в класс приложений Android. Я хочу иметь возможность добавлять песни в список воспроизведения, указанный в моем контекстном меню. Когда я нажимаю на свой контекстный контекст addtoplaylist, я хочу, чтобы появилось всплывающее меню. Как мне позвонить в свое всплывающее меню? Также, если у вас есть предложения по заполнению моего всплывающего меню, а не цикла for for, это тоже будет круто.Android Call Popup Menu

У меня есть слушатель контекстного меню, который выглядит так.

@Override 
public boolean onContextItemSelected(MenuItem item) { 

    switch (item.getItemId()) { 
     case R.id.share: 
      shareIt(); 
      return true; 
     case R.id.Store: 
      musicStore(); 
      return true; 
     case R.id.addtoplaylist: 
     // open popup menu 
      return true; 
     case R.id.snippet: 
      snippet(tem1); 
      return true; 
     default: 
      return super.onContextItemSelected(item); 
    } 
}  

И у меня есть всплывающее меню, похожее на это.

 public void showPopup(View v) { 

    int i = view.getPlaylists().size(); 
    ArrayList<String> playlist = view.getPlaylists(); 

    PopupMenu popup = new PopupMenu(this, v); 
    MenuInflater inflater = popup.getMenuInflater(); 
    inflater.inflate(R.menu.popup_menu, popup.getMenu()); 
    for(int k = 0; k > i;k++){ 
     popup.getMenu().add(playlist.get(k)); 
    } 

    popup.show(); 
} 

ответ

0

Как вы можете видеть здесь PopupMenu V просто якорь, так что вы можете передать, например, в ListView, который содержит вашу деталь Или, если вы действительно хотите, чтобы PopupMenu привязываться к элементу иметь вид here

Вы получаете свой целевой вид следующим образом.

AdapterView.AdapterContextMenuInfo info = (AdapterView.AdapterContextMenuInfo) item.getMenuInfo(); 
View v = info.targetView; 

Таким образом, после вызова

showPopUp(v); 

Для Вашего цикла, я не вижу, гораздо лучшее решение.

0

Принятый вопрос хорошо, но для для петлевой части можно использовать итератор :)

for (String song : playlist) { 
    popup.getMenu().add(song); 
}