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
- 如果你想创建点击整个项目你可以findViewById
你的 root-layout 比如 relativelayout 或 linearlayout 等,然后设置 onclicklistner
- 如果您想为特定视图创建点击,您可以findViewById您的视图然后设置 onclicklistner
将 onItemTouchListener 添加到您的回收站视图。
mRecyclerView.addOnItemTouchListener(new RecyclerItemClickListener(mActivity, mRecyclerView, new RecyclerItemClickListener.OnItemClickListener() {
@Override
public void onItemClick(View view, int position)
{
///////// add your task
}
});
您可以在 onBindViewHolder() 或您的 recyclerview 适配器的 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.Use
中每个项目的视图
holder.buttonName.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
//perform your operations here
}
});
}
在视图内执行按钮单击。
我创建了一个列表,我想实现一个 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
- 如果你想创建点击整个项目你可以findViewById 你的 root-layout 比如 relativelayout 或 linearlayout 等,然后设置 onclicklistner
- 如果您想为特定视图创建点击,您可以findViewById您的视图然后设置 onclicklistner
将 onItemTouchListener 添加到您的回收站视图。
mRecyclerView.addOnItemTouchListener(new RecyclerItemClickListener(mActivity, mRecyclerView, new RecyclerItemClickListener.OnItemClickListener() {
@Override
public void onItemClick(View view, int position)
{
///////// add your task
}
});
您可以在 onBindViewHolder() 或您的 recyclerview 适配器的 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.Use
中每个项目的视图holder.buttonName.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
//perform your operations here
}
});
}
在视图内执行按钮单击。