0

Android アプリ クラスの入門用に、単純な音楽プレーヤーに取り組んでいます。コンテキスト メニューにリストされているプレイリストに曲を追加できるようにしたいと考えています。addtoplaylist contextmenuitem をクリックすると、ポップアップ メニューが表示されます。ポップアップ メニューを呼び出すにはどうすればよいですか? また、for ループではなく、ポップアップ メニューにデータを入力する方法について提案があれば、それも素晴らしいでしょう。

このようなコンテキストメニューリスナーがあります。

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

2 に答える 2

0

ここでわかるように、 PopupMenu V は単なるアンカーであるため、たとえばアイテムを含む ListView を渡すことができます

このようにターゲットビューを取得します。

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

だから電話の後

showPopUp(v);

あなたのループについては、はるかに良い解決策はありません。

于 2013-10-03T16:45:09.407 に答える