我有一个extends RecyclerView.Adapter<UserProfileAdapter.ViewHolder>
的适配器活动。问题是当用户点击其中一个列表项中的“自动链接”时,我会遇到以下异常:
在我的UserProfileActivity中,我实例化我的适配器,如:
UserProfileAdapter adapter = new UserProfileAdapter(getApplicationContext(), posts);
在适配器中,我检索这样的上下文:
private Context mContext;
private List<ParseObject> mYeets;
private UserProfileAdapter adapter;
public UserProfileAdapter(Context context, List<ParseObject> yeets) {
super();
this.mYeets = yeets;
this.mContext = context;
this.adapter = this;
}
如何确保自动链接的文本不会产生此错误?由于没有与链接/意图相关的代码,我甚至可以做什么?
答案 0 :(得分:2)
android.util.AndroidRuntimeException
因为您的应用程序正在使用应用程序上下文来启动没有标志FLAG_ACTIVITY_NEW_TASK
的活动。 Android Runtime不允许这种操作,因为没有Stack来添加这个新的Activity,FLAG_ACTIVITY_NEW_TASK标志对于在你的应用程序中创建一个新的堆栈很重要。
要解决此问题,您可以将Activity上下文传递给Adapter而不是Application Context(即:use this
)。
例如:UserProfileAdapter adapter = new UserProfileAdapter(this, posts);
良好做法:始终使用活动上下文来处理UI元素。