2011-10-31 49 views
36

me trataron con el paso de context de la actividad en el adaptador y luego intenté context.finish(); Pero me facilita un error como The method finish() is undefined for the type ContextCómo finalizar una actividad desde un adaptador ...?

+0

Utilice el enlace a continuación. Espero que esto resuelva su problema https://stackoverflow.com/questions/33972621/cannot-use-finish-inside-adapter – user6789978

Respuesta

145

tipo cast it with actividad.

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

Gracias, esto funciona como un encanto. – Janpan

+0

me funciona bien –

2

Intenta pasar su actividad como un parámetro activity, entonces usted será capaz de llamar finish() en él. Espero que esto ayude.

2

Pruebe con el siguiente código:

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

... 

this.myContext=context; 
} 

Y en su getView adaptador()

btn.setOnClickListener(new Button.OnClickListener() { 

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

    } 
}); 
+0

thx para la respuesta con la descripción @ raul_zevahc –

0

En su adaptador personalizado intenta llamar a su uso final por debajo de código

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

no lo he usado pero Espero que funcione. use: "this.recreate()" si desea volver a cargarlo desde dentro de la actividad.

si desea volver a cargar desde luego use el adaptador: "((Actividad) contexto) .recreate()"

+0

ahora lo he comprobado. está funcionando bien. – neens

0

cerca Actividad forma Clase adaptador personalizado justo en el método

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