【问题标题】:Why intent is not passed from adapter class?为什么意图不是从适配器类传递的?
【发布时间】:2018-04-23 21:44:19
【问题描述】:

实际上,我正在尝试在单击 item 时从适配器类传递意图。虽然这听起来可能是一个正常或愚蠢的问题,但我从过去 3 4 天开始就陷入了困境。起初我以为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);
            }
        });

【问题讨论】:

  • 你能展示更多你的代码吗?我们需要更多背景信息。
  • 什么是ProfileHolder?是extend Activity 还是extend AppCompatActivity
  • @Code-Apprentice 它正在扩展 AppCompatActivity

标签: android android-intent android-recyclerview


【解决方案1】:
  • 删除你不需要的i.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
  • ProfileHolder 是一个活动吗?好像不是一个。
  • 如果ProfileHolder确实是一个Activity,检查它是否注册在AndroidManifest.xml文件中。

【讨论】:

    【解决方案2】:

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

    【讨论】:

      【解决方案3】:

      我认为您没有正确传递上下文。

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

      Context context;
      

      2.在 onCreateViewHolder 中写下代码。

       context = viewGroup.getContext();
      

      3.现在点击

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2019-03-09
        • 1970-01-01
        • 2021-10-28
        • 2012-03-03
        • 2020-07-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多