1. ホーム
  2. android

[解決済み] RecyclerViewにコンテキストメニューを作成する方法

2022-10-12 20:12:08

質問

のコンテキストメニューはどのように実装するのですか? RecyclerView? どうやら registerForContextMenu(recyclerView) を呼び出すとうまくいかないようです。フラグメントから呼び出しているのですが。誰かこれを実装して成功した人はいますか?

どのように解決するのですか?

のように、これらのメソッドを直接実装することはできません。 onClickListener , onContextMenuListener などは RecycleView が拡張します。 android.view.ViewGroup . したがって、これらのメソッドを直接使用することはできません。 これらのメソッドを実装するには ビューホルダー アダプタクラスで実装できます。 このようにすれば、RecycleViewのコンテキストメニューを利用することができます。

public static class ViewHolder extends RecyclerView.ViewHolder implements OnCreateContextMenuListener {
    
    TextView tvTitle;
    ImageView ivImage;
    
    public ViewHolder(View v) {
        super(v);
        tvTitle =(TextView)v.findViewById(R.id.item_title);
        v.setOnCreateContextMenuListener(this);
        
        
    }
}

では、同じ手順でコンテキストメニューを実装してみましょう。

@Override
public void onCreateContextMenu(ContextMenu menu, View v, ContextMenuInfo menuInfo) {
     
    menu.setHeaderTitle("Select The Action");    
    menu.add(0, v.getId(), 0, "Call");//groupId, itemId, order, title   
    menu.add(0, v.getId(), 0, "SMS"); 
    
}

何か困ったことがあれば、コメントで聞いてください。