我们如何从Custom Adapter调用onBackPressed()函数

时间:2014-09-25 11:06:26

标签: android onclick

我们如何从适配器按钮单击

返回第一个活动
holder.close.setOnClickListener(new View.OnClickListener() {

                    @Override
                    public void onClick(View v) {
                        // TODO Auto-generated method stub
                        onBackPressed(); 
                    }
                }) ;
            return convertView;
        }   

7 个答案:

答案 0 :(得分:5)

如果您之前的活动在堆栈上,请致电 -

((Activity) mContext).finish();

否则 使用intent&调用之前的活动完成当前活动。

holder.close.setOnClickListener(new View.OnClickListener() {

                @Override
                public void onClick(View v) {
                    // TODO Auto-generated method stub
                    Intent mIntent=new Intent(mContext,MyActivity.class);
                    mContext.startActivity(mIntent);
                    ((Activity) mContext).finish();
                }
            }) ;
        return convertView;
    }   

答案 1 :(得分:2)

Context.finish(); 

使用activity context.finish();

答案 2 :(得分:2)

您可以在Activity的onBackPressed()方法中编写代码以转到上一个活动,然后从适配器调用活动的onBackPressed()方法。

((Your Activity)context).onBackPressed();

答案 3 :(得分:1)

使用上下文完成当前活动。 用这个:

 holder.close.setOnClickListener(new View.OnClickListener() {

                    @Override
                    public void onClick(View v) {
                        // TODO Auto-generated method stub
                      ((Activity)context).finish();
                    }
                }) ;
            return convertView;
        }  

答案 4 :(得分:0)

如果您在开始新活动时没有完成第一项活动,那么您可以完成当前的活动。

holder.close.setOnClickListener(new View.OnClickListener() {

    @Override
    public void onClick(View v) {
        // TODO Auto-generated method stub
        //finish this activity
    }
 });

答案 5 :(得分:0)

因为你需要在自定义适配器构造函数中传递Activity并使用onBackPressed()函数..

e.g。

...

 Activity mctx;
 MyAdapter(Activity a) {

 mctx = a;
 }

...

 holder.close.setOnClickListener(new View.OnClickListener() {

                @Override
                public void onClick(View v) {
                    // TODO Auto-generated method stub
                    mctx.onBackPressed(); 
                }
            }) ;
        return convertView;
    } 

答案 6 :(得分:0)

通过构造函数将活动引用传递给适配器,如:

CustomAdapter customAdapter=CustomAdapter(getApplicationContext(), arrayList,HomeActivity.this);

并在您的自定义适配器

 public class CustomAdapter extends RecyclerView.Adapter<CustomAdapter.ViewHolder> {

Context context;
ArrayList<HomeModel> arrHomeModel;
AppCompatActivity activity;
public CustomAdapter(Context context, ArrayList<HomeModel> arrHomeModel, AppCompatActivity activity)
{
    this.context=context;
    this.arrHomeModel=arrHomeModel;
    this.activity=activity;
}

现在你可以调用activity.onBackPressed();无论你想要什么。