2011-10-31 10 views
36

Próbowałem z przechodzącej context aktywności do adaptera, a następnie próbowałem context.finish(); Ale to daje mi jeden błąd jak The method finish() is undefined for the type ContextJak zakończyć działanie z adaptera ..?

+0

Skorzystaj z linku poniżej. Mam nadzieję, że rozwiąże to Twój problrm https://stackoverflow.com/questions/33972621/cannot-use-finish-inside-adapter-adapter – user6789978

Odpowiedz

145

typ rzucić go z działalnością.

((Activity)context).finish(); 
+0

Dziękuję, działa to jak czar. – Janpan

+0

działa dobrze dla mnie –

2

Spróbuj przekazując swoją aktywność jako parametr activity, wtedy będziesz mógł zadzwonić finish() na nim. Mam nadzieję że to pomoże.

2

Spróbuj z następującego kodu:

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

... 

this.myContext=context; 
} 

I w getView adaptera()

btn.setOnClickListener(new Button.OnClickListener() { 

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

    } 
}); 
+0

thx za odpowiedź z opisem @ raul_zevahc –

0

w Twojej adaptera próby wywołania korzystanie mety poniższy kod

((Activity)context).finish(); 
0

Nie użyłem tego, ale mam nadzieję, że to zadziała. use: "this.recreate()", jeśli chcesz przeładować go z poziomu działania.

jeśli chcesz odświeżyć ją z adapterem następnie użyć: "((aktywny) kontekstu) .recreate()"

+0

teraz to sprawdziłem. działa dobrze. – neens

0

blisko aktywny forma Klasa klienta Adapter tylko w metodzie

@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(); 
    } 
}); 
Powiązane problemy