web-dev-qa-db-ja.com

アダプタからアクティビティを完了する方法..?

アクティビティのcontextをアダプタに渡してみた後、context.finish();を試しましたが、The method finish() is undefined for the type Contextのようなエラーが1つ発生しました

52
Noby

アクティビティでキャストします。

((Activity)context).finish();
192
Yashwanth Kumar

次のコードを試してください。

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

...

this.myContext=context;
}

そして、アダプターのgetView()で

btn.setOnClickListener(new Button.OnClickListener() {

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

    }
});
7
raul_zevahc

アクティビティをactivityパラメータとして渡すと、finish()を呼び出すことができます。お役に立てれば。

4
Egor

このコードは((Activity)context).finish();そして完全なコードは

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();
    }
});
1
Pradeep Sheoran

コンテキストを使用してアクティビティ名を型キャストし、アクティビティを終了します

0
DEEP ADHIYA

私はそれを使用していませんが、うまくいくことを願っています。アクティビティ内からリロードする場合は、「this.recreate()」を使用します。

アダプタからリロードする場合は、「((Activity)context).recreate()」を使用します

0
neens

アダプタで動作します

((Activity)view.getContext()).finish();
0
yogesh mhetre