为什么没有从适配器类传递intent?

时间:2018-04-23 21:44:19

标签: android android-intent recycler-adapter

实际上我正试图在点击项目时从适配器类传递意图。虽然这可能听起来是一个正常或愚蠢的问题,但我从最近3天开始就陷入困境。起初我以为itemView没有收到点击,但后来我试图在onClick()方法中放一个吐司,但奇怪的是它是在没有任何问题或错误的情况下烘烤消息,但它不是传递意图。我不知道为什么会发生这种奇怪的行为。我试图在 SO 中搜索很多问题,但没有一个是有帮助的。

代码:

 //opening img on clik
        holder.itemView.setClickable(true);
        holder.itemView.setFocusable(true);
        holder.itemView.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                Toast.makeText(ctx,"testing",Toast.LENGTH_SHORT).show();
                Bundle b = new Bundle();
                b.putString("what", "show_post");
                b.putString("timelineData", gson.toJson(totalList));
                b.putInt("position",holder.getAdapterPosition());
                Intent i = new Intent(ctx, ProfileHolder.class);
                i.putExtras(b);
                i.putExtra("Open", "starred");
                i.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
                ctx.startActivity(i);
            }
        });

3 个答案:

答案 0 :(得分:0)

  • 删除您不需要的i.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
  • ProfileHolder活动?它似乎不是一个。
  • 如果ProfileHolder确实是一个活动,请检查它是否已在AndroidManifest.xml文件中注册。

答案 1 :(得分:0)

使适配器和活动之间的接口成为传递意图的最佳方式 有用的链接: “https://github.com/Androidsignal/Android-Retrofit” 见ada

答案 2 :(得分:0)

我认为你没有正确传递背景信息。

执行以下步骤: 1.在适配器中全局声明Context。

Context context;

2.在onCreateViewHolder上写下代码。

 context = viewGroup.getContext();

3.现在点击

context.startActivity(new Intent(context, Activity.class);