2011-10-31 2 views
36

ho provato con il passaggio context di attività nella scheda e poi ho provato context.finish(); Ma la sua dandomi un errore come The method finish() is undefined for the type ContextCome terminare un'attività da un adattatore ..?

+0

Usa sotto link.i spero che questo risolva il tuo problrm https://stackoverflow.com/questions/33972621/cannot-use-finish-inside-adapter – user6789978

risposta

145

digitare castarlo con l'attività.

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

Grazie, questo funziona come un fascino. – Janpan

+0

funziona bene per me –

2

Prova a passare la vostra attività come parametro di activity, allora sarete in grado di chiamare finish() su di esso. Spero che questo ti aiuti.

2

Provare con il seguente codice:

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

... 

this.myContext=context; 
} 

E nel vostro adattatore GetView()

btn.setOnClickListener(new Button.OnClickListener() { 

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

    } 
}); 
+0

per la risposta con descrizione @ raul_zevahc –

0

nella vostra abitudine adattatore tenta di chiamare l'uso finitura sottostante Codice

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

non l'ho usato ma Spero che funzionerà. utilizzare: "this.recreate()" se si desidera ricaricarlo dall'interno dell'attività.

se si desidera ricaricare da adattatore quindi utilizzare: "((Attività) contesto) .recreate()"

+0

ora l'ho controllato. sta funzionando bene. – neens

0

vicino Attività forma Classe personalizzato adattatore solo nel metodo

@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(); 
    } 
});