簡體   English   中英

Recyclerview請點擊

[英]Recyclerview Click

我創建了一個列表,我想實現一個clickListener,但是沒有捕獲點擊的問題

    public static class MyViewHolder extends RecyclerView.ViewHolder
        implements View.OnClickListener {

    public TextView design, ip, port, number, id;

    public MyViewHolder(View view) {
        super(view);
        view.setOnClickListener(this);
        design = (TextView) view.findViewById(R.id.txt_device_designation);
        port = (TextView) view.findViewById(R.id.txt_device_port);
        ip = (TextView) view.findViewById(R.id.txt_device_ip);
        number = (TextView) view.findViewById(R.id.txt_device_number);
        id = (TextView) view.findViewById(R.id.txt_device_id);
    }

    @Override
    public void onClick(View v) {
        Log.i("Test", "Test");
    }
}

現在我想要如果我單擊菜單圖標,我希望從底部出現一個菜單,我設法獲得了按鈕的點擊和位置,但是您能幫我調出菜單嗎?

我的螢幕

public MyViewHolder(View view) {
        super(view);
        view.setOnClickListener(this);
        design = (TextView) view.findViewById(R.id.txt_device_designation);
        port = (TextView) view.findViewById(R.id.txt_device_port);
        ip = (TextView) view.findViewById(R.id.txt_device_ip);
        number = (TextView) view.findViewById(R.id.txt_device_number);
        id = (TextView) view.findViewById(R.id.txt_device_id);
        imageViewContextMenu = (ImageView) view.findViewById(R.id.iv_context_menu);
        linearLayoutDeviceClick = (LinearLayout) view.findViewById(R.id.linearLayoutDeviceClick);

        imageViewContextMenu.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                Log.i("Test", String.valueOf(getPosition())); //Test succes
            }
        });

        linearLayoutDeviceClick.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                Log.i("TestLayout", String.valueOf(getPosition())); //Test succes

            }
        });
    }

您必須在findViewById之后設置setOnClickListener

  1. 如果要在整個項目上單擊創建,則可以找到ViewById您的根布局(例如relativelayout或linearlayout等),然后設置onclicklistner
  2. 如果你想創建點擊特定視圖可以findViewById 視圖 ,然后設置onclicklistner

將onItemTouchListener添加到回收者視圖。

 mRecyclerView.addOnItemTouchListener(new RecyclerItemClickListener(mActivity, mRecyclerView, new RecyclerItemClickListener.OnItemClickListener() {
                    @Override
                    public void onItemClick(View view, int position)
                    {
                        ///////// add your task
                    }


                    });

您可以在recyclerview適配器的onBindViewHolder()或onCreateViewHolder()中執行單擊偵聽器。

@Override
public void onBindViewHolder(ViewHolder holder, final int position) {
holder.itemView.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
        //perform your operations here
        }
 });

}

其中itemView是您在recyclerview中每個項目的視圖。

holder.buttonName.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
        //perform your operations here
        }
 });

}

要執行按鈕,請在視圖內單擊。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM