处理Recycleview中的单击项 [英] Handle click item in Recycleview
本文介绍了处理Recycleview中的单击项的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我在垂直回收视图中有一个水平回收视图.
并且我在水平回收站视图内添加列表 cardview .
在主要活动上单击项目时如何获取项目信息?
How to get the item information when click on the item on main activity?
谢谢
public class MainActivity extends AppCompatActivity {
private RecyclerView recyclerView;
private AlbumsVerticalAdapter adapter;
private List<Album> albumList;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
setSupportActionBar(toolbar);
initCollapsingToolbar();
recyclerView = (RecyclerView) findViewById(R.id.recycler_view);
albumList = new ArrayList<>();
adapter = new AlbumsVerticalAdapter(this, albumList);
recyclerView.setHasFixedSize(true);
recyclerView.setLayoutManager(new LinearLayoutManager(this, LinearLayoutManager.VERTICAL, false));
recyclerView.setAdapter(adapter);
}
private void initCollapsingToolbar() {}
private void prepareAlbums() {}
}
public class AlbumsVerticalAdapter extends RecyclerView.Adapter<AlbumsVerticalAdapter.MyViewHolder> {
private Context mContext;
private List<Album> albumList;
//.............
@Override
public void onBindViewHolder(final MyViewHolder holder, int position) {
Album album = albumList.get(position);
holder.title.setText(album.getName());
AlbumsHorizontalAdapter itemListDataAdapter = new AlbumsHorizontalAdapter(mContext, albumList);
holder.recycler_view_list.setHasFixedSize(true);
holder.recycler_view_list.setLayoutManager(new LinearLayoutManager(mContext, LinearLayoutManager.HORIZONTAL, false));
holder.recycler_view_list.setAdapter(itemListDataAdapter);
}
@Override
public int getItemCount() {
return albumList.size();
}
}
推荐答案
最好在ViewHolder
类上实现OnClickListener
并将侦听器添加到所需的视图中.
It would be better to implement OnClickListener
on your ViewHolder
class and add the listener to your desired views.
只需在onBindViewHolder(...)
中添加setOnClickListener(...)
就像这样:
Just in onBindViewHolder(...)
add setOnClickListener(...)
like this:
@Override
public void onBindViewHolder(WordViewHolder holder, final int position) {
//...
holder.itemView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Toast.makeText(v.getContext(), position + "", Toast.LENGTH_SHORT).show();
}
});
}
这篇关于处理Recycleview中的单击项的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文