[英]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
將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.