android – How to finish an activity from an Adapter..?-ThrowExceptions

Exception or error:

I tried with passing context of activity into the adapter and then i tried context.finish(); But its giving me one error like The method finish() is undefined for the type Context

How to solve:

type cast it with activity.

((Activity)context).finish();

###

Try with the following code:

public YourAdapterName(......,Context context){

...

this.myContext=context;
}

And in your adapter getView()

btn.setOnClickListener(new Button.OnClickListener() {

    @Override
    public void onClick(View v) {
        ((YourActivityName)myContext).yourDesiredMethod();

    }
});

###

Try passing your Activity as an activity parameter, then you’ll be able to call finish() on it. Hope this helps.

###

Code for this is ((Activity)context).finish();and complete code is

holder.cardUsers.setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View view) {
        Intent intent1=new Intent(mcontext,AstroChatPanel.class);
        intent1.putExtra("mobile",userslist.get(position).getMobile());
        intent1.putExtra("name",userslist.get(position).getName());
        intent1.putExtra("type","admin");
        mcontext.startActivity(intent1);
        ((Activity)mcontext).finish();
    }
});

###

In adapter it will work

((Activity)view.getContext()).finish();

###

i have not used it but i hope it will work.
use:
“this.recreate()” if you are want to reload it from within the activity.

if you want to reload it from Adapter then use:
“((Activity)context).recreate()”

###

Typecast your activity name with context and finish activity

###

For Kotlin code:

(context as Activity).finish()

###

In your custom adapter try to call finish use below code

((Activity)context).finish();

###

close Activity form Class Custom Adapter just in method

 @Override
  public void onClick(View v) {
    MyApplication.value=mCompany.getCompanyId();
    Intent intent = new Intent(MyApplication.context, VaasetActivity.class);
    intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
   intent.putExtra("ID_COMPANY",mCompany.getCompanyId());
    MyApplication.context.startActivity(intent);
    ((Activity)context).finish();
  }
});

Leave a Reply

Your email address will not be published. Required fields are marked *