Android - 在回收站视图中单击项目退出 activity
Android - exit activity on item click in recycler view
我的 RecyclerView 中有一堆列表项。我正在正确处理每个项目的点击,但我需要在单击任何项目时关闭 activity。因为 RecyclerView 没有 setOnItemClickListener
方法,我必须在适配器中执行此操作:
@Override
public void onBindViewHolder(final Holder holder, int position) {
// ...
holder.flagNameTextView.setText(arrayList.get(position).getName());
holder.itemView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
// Go back to the previous activity
// such as onBackPressed();
}
});
}
当然,适配器没有扩展 Activity,所以我不能使用 onBackPressed()
或 finish()
。
我该怎么做?
使用以下内容:
全局声明上下文。
Context c;
然后使用 activity.
类型转换上下文
((YourActivity)c).finish();
希望对您有所帮助。
您可以传递 activity 的引用,抛出适配器构造函数并调用 Activity.finish();
希望对您有所帮助。
对不起我的英语。
您可以从 flagNameTextView
中获取上下文:
((Activity)holder.flagNameTextView.getContext()).finish();
只需使用 YourActivityName.this.finish()。
通过添加 Activity 名称,您可以告诉 android 您想要哪个 "this"。
这仅在您的适配器未定义为静态时有效 class。
另外,你可以在RecyclerView adapter中定义一个接口回调,比如OnClickListener。然后在Activity中实现这个接口,传入adapter中,然后在View的OnClickListner回调中使用。
我的 RecyclerView 中有一堆列表项。我正在正确处理每个项目的点击,但我需要在单击任何项目时关闭 activity。因为 RecyclerView 没有 setOnItemClickListener
方法,我必须在适配器中执行此操作:
@Override
public void onBindViewHolder(final Holder holder, int position) {
// ...
holder.flagNameTextView.setText(arrayList.get(position).getName());
holder.itemView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
// Go back to the previous activity
// such as onBackPressed();
}
});
}
当然,适配器没有扩展 Activity,所以我不能使用 onBackPressed()
或 finish()
。
我该怎么做?
使用以下内容:
全局声明上下文。
Context c;
然后使用 activity.
类型转换上下文((YourActivity)c).finish();
希望对您有所帮助。
您可以传递 activity 的引用,抛出适配器构造函数并调用 Activity.finish();
希望对您有所帮助。
对不起我的英语。
您可以从 flagNameTextView
中获取上下文:
((Activity)holder.flagNameTextView.getContext()).finish();
只需使用 YourActivityName.this.finish()。
通过添加 Activity 名称,您可以告诉 android 您想要哪个 "this"。
这仅在您的适配器未定义为静态时有效 class。
另外,你可以在RecyclerView adapter中定义一个接口回调,比如OnClickListener。然后在Activity中实现这个接口,传入adapter中,然后在View的OnClickListner回调中使用。