简体   繁体   English

Android-在回收站视图中单击项目退出活动

[英]Android - exit activity on item click in recycler view

I've got a bunch of list items in my RecyclerView. 我的RecyclerView中有一堆列表项。 I am handling the clicks properly for each item, but I need to close the activity when any item is clicked. 我为每个项目正确处理了单击,但是单击任何项​​目时都需要关闭活动。 Becuase RecyclerView doesn't have setOnItemClickListener method, I have to do this within the adapter: 因为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();
        }
    });
}

But of course, the adapter is not extending the Activity, so I can't use onBackPressed() or finish() . 但是当然,适配器不会扩展Activity,所以我不能使用onBackPressed()finish()

How can I do this? 我怎样才能做到这一点?

Use the Following: 使用以下内容:

Declare context globally. 全局声明上下文。

Context c;

Then type-cast context with your activity. 然后根据您的活动键入上下文。

((YourActivity)c).finish();

Hope this helps. 希望这可以帮助。

You can pass a reference of your activity throw the adapter constructor and call Activity.finish(); 您可以传递活动的引用以抛出适配器构造函数,并调用Activity.finish();。

Hope this Helps. 希望这可以帮助。

Sorry for my english. 对不起我的英语不好。

您可以从flagNameTextView获取上下文:

((Activity)holder.flagNameTextView.getContext()).finish();  

Just use YourActivityName.this.finish(). 只需使用YourActivityName.this.finish()。

By adding the Activity name you are telling android which "this" you want. 通过添加活动名称,您可以告诉android您想要哪个“ this”。

This will only work if your adapter is NOT defined as a static class. 仅当您的适配器未定义为静态类时,这才起作用。

Besides, you can define a interface callback like OnClickListener in RecyclerView adapter. 此外,您可以在RecyclerView适配器中定义类似OnClickListener的接口回调。 Then Implement this interface in Activity, pass it into the adapter and then use it in View's OnClickListner callback. 然后在Activity中实现此接口,将其传递到适配器中,然后在View的OnClickListner回调中使用它。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

相关问题 Android Espresso如何在Recycler View中单击Recycler View中的项目? - How Android Espresso click an item in Recycler View inside Recycler View? 更新活动中的视图以响应回收者视图项目单击 - Update View in Activity in response to recycler view item click 项目单击以进入回收站视图 - item click for recycler view 单击警报生成器 Android 中的项目时更改/更新回收站查看项目 - Change/Update Recycler View Item On Click of Item In Alert Builder Android Android:Recycler 视图的 UI 在项目点击时不会改变? - Android: Recycler view's UI doesn't change on item click? 单击回收者视图中的项目后,在回收者视图中显示子项目 - Show a sub item on the recycler view after click on an item in the recycler view 回收器视图上的空指针异常项目单击侦听器活动在单击项目时关闭 - Null pointer Exception on Recycler View On item click listener Activity Close when item got clicked 列表视图项目点击时的Android活动过渡 - Android activity transition on list view item click 通过单击回收者视图中的项目来更新活动中的视图 - Update views in activity by clicking item in recycler view 如何在回收站视图点击上移动不同的活动? - How to move a different activity on recycler view click?
 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM