处理Recycleview中的单击项 [英] Handle click item in Recycleview

查看:107
本文介绍了处理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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆