You need to enable JavaScript to run this app. 如何在RecyclerView条目点击事件中添加分享按钮及闪退问题解决
优惠活动
大模型
产品
解决方案
定价
更多

如何在RecyclerView条目点击事件中添加分享按钮及闪退问题解决

问题原因
  • 你初始化Adapter时传入的是getApplicationContext(),ApplicationContext不属于Activity上下文,不具备直接启动界面的常规能力
  • 你只给原始的sharing意图加了FLAG_ACTIVITY_NEW_TASK,但Intent.createChooser()会生成一个新的Intent实例,这个新实例没有携带你设置的flag,所以系统仍然触发报错
修复方案

有两种可选,推荐第一种:

方案1(推荐):修改Adapter传入的上下文

在MainActivity中初始化Adapter的位置,把getApplicationContext()替换为MainActivity.this:

// 原来的错误写法
adapter = new Adapter(getApplicationContext(), arrayList);
recyclerView.setLayoutManager(new LinearLayoutManager(getApplicationContext()));
// 修改为
adapter = new Adapter(MainActivity.this, arrayList);
recyclerView.setLayoutManager(new LinearLayoutManager(MainActivity.this));

修改后可以删掉Adapter点击事件里的sharing.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);这行代码,因为Activity上下文启动分享不需要额外加这个flag。

方案2:给选择器意图也添加flag

如果你一定要保留传入ApplicationContext的写法,就把Adapter里启动Activity的代码改成如下:

Intent chooser = Intent.createChooser(sharing, "Share using");
chooser.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
context.startActivity(chooser);

内容的提问来源于stack exchange,提问作者archit kumar

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.17 12:54:05