实际上我正试图在点击项目时从适配器类传递意图。虽然这可能听起来是一个正常或愚蠢的问题,但我从最近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);
}
});
答案 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);