如何在OnClickListener
??
RecyclerView
在线教程显示了OnItemTouchListener
的实现,但它们有点含糊不清。有人可以显示代码,以便与RecyclerView
进行触摸交互的简单实现。
我遇到过一篇文章:http://sapandiwakar.in/recycler-view-item-click-handler/
这提供了一个关于如何去做的模糊图片,但有人可以说清楚。感谢。
答案 0 :(得分:2)
如果您使用自定义适配器,那么您可以在Holder类中使用这样的OnClickListener方法。
public class DataObjectHolder extends RecyclerView.ViewHolder {
TextView header , resp_id , time;
ImageView status,info,delete,upload;
public DataObjectHolder(View itemView) {
super(itemView);
header = (TextView) itemView.findViewById(R.id.header_text_inc);
resp_id = (TextView) itemView.findViewById(R.id.resp_text_inc);
time = (TextView) itemView.findViewById(R.id.time_text_inc);
delete =(ImageView)itemView.findViewById(R.id.delete_inc_image);
Log.e(LOG_TAG, "Adding Listener");
itemView.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
// do something here
}
});
delete.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
r_bean = mDataset.get(getAdapterPosition());
}
});
答案 1 :(得分:1)
对于protected void Page_Load(object sender, EventArgs e)
{
if(Page.IsPostBack==false) //Page loads for the first time
{
demoTxtBox1.Text ="Text test on page Load"; // Set text box value
demoTxtBox2.Text="";
}
else{
string textInTextBox1 = demoTxtBox1.Text; //Get text box value
demoTxtBox2.Text = textInTextBox1;
}
}
项目RecyclerView
是最佳方式
但你可以通过跟随adpter
点击ItemOnItemTouchListener
在 @Override
public void onBindViewHolder(ViewHolder holder, int position) {
...
holder.itemView.setOnClickListener(..)
...
}
RecyclerView
请参阅此link for complete left-to-right and right-to-left swipe detection
答案 2 :(得分:1)
您可以使用holder.root在customadapter中单击项目
@Override
public void onBindViewHolder(final MyAdapter.ViewHolder1 holder, final int position) {
holder.root.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
//write your code here
}
});
}
你必须使用这个
mRecyclerView.addOnItemTouchListener(new RecyclerView.OnItemTouchListener() {
@Override
public boolean onInterceptTouchEvent(RecyclerView recyclerView, MotionEvent motionEvent) {
child = recyclerView.findChildViewUnder(motionEvent.getX(),motionEvent.getY());
if(child!=null && mGestureDetector.onTouchEvent(motionEvent)){
//Drawer.closeDrawers();
//write your code here
return true;
}
if(txt!=null)
{
}
});