如何通过单击来自recyclerview的项目来打开新活动

时间:2018-06-14 16:26:33

标签: android listview android-recyclerview

单击“列表”视图项时,如何打开新的空活动?

我从其他来源获得了代码,我可以使用按钮进行操作,但是在自定义回收站视图中这样做很困惑?

这是我的Mainactivity代码

@Override
protected void onStart() {
    super.onStart();
    FirebaseRecyclerAdapter<Model, ViewHolder> firebaseRecyclerAdapter =
            new FirebaseRecyclerAdapter<Model, ViewHolder>(
                    Model.class,
                    R.layout.row,
                    ViewHolder.class,
                    mDbRef
            ) {
                @Override
                protected void populateViewHolder(ViewHolder viewHolder, Model model, int position) {

                    viewHolder.setDetails(getApplicationContext(), model.getTitle(), model.getDescription(), model.getImage());

3 个答案:

答案 0 :(得分:2)

您必须按照以下步骤操作:

1 - 使用构造函数

上下文传递给适配器

2 - 在 onBindViewHolder 功能中启动您的活动:

    holder.btn.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
              Intent intent =  new Intent(context, ActivityToStart.class);
              context.startActivity(intent);
        }
    });

答案 1 :(得分:0)

对于单击事件,您需要实现onClickListener,如下所示:

counts ← counts – {(c,n)} ∪ {(c,n+1)}.

(如果你利用'Cntl + ENTER'。这项工作要容易得多。)

用于更改屏幕(或活动)。

你可以这样做:

    btn.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {

        }
    });

我希望这有用。

答案 2 :(得分:0)

您可以在适配器的onBindViewHolder函数中设置onClickListener。并使用intent导航到另一个活动,如下例所示。

@Override
public void onBindViewHolder(final LeaderBoardAdapter.MyViewHolder holder, final int 
position) {

    //holder.newsUrl.setText(newsItemList.get(position).getUrl());
    holder.newsDescription.setText(newsItemList.get(position).getDescription());

    holder.newsUrl.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            Intent intent = new Intent(mContext,ReadMoreActivity.class);
            intent.putExtra("title",newsItemList.get(position).getTitle());

            mContext.startActivity(intent);

       }
    });


}