studio recyclerview hacer como actualizar activity android android-activity view refresh adapter

android - recyclerview - ¿Cómo refrescar una vista en la actividad principal desde un adaptador?



swipe refresh layout android (4)

Tengo un gráfico en la actividad principal también tengo una vista de reciclador en la actividad principal. El adaptador personalizado se utiliza para recyclerview. Tengo una casilla de verificación y diseño deslizado en el diseño de elementos de la lista. en el diseño de deslizamiento hay un botón de borrar.

Quiero restablecer el gráfico de actividad principal cuando marque la casilla de verificación o cuando elimine cualquier elemento.

Para esto, creé un método en la actividad principal. Y llamó a este método en el adaptador enCheckedChangeListener y al hacer clic en eliminar.

Pero obtengo una excepción de puntero nulo en mBarChart. es decir. grafico. He creado una instancia en mBarChart en el método setUI y esto se llama enCrear una actividad.

resetMethod

public void resetGraph(Context context) { mBarChart.invalidate(); }

en adaptador:

Context conext; MainActivity mainActivity; mainActivity = new MainActivity(); mainActivity.resetGraph(conext);

¿Como hacer esto? Por favor ayuda ... Gracias ..


Cree una interfaz que implemente la actividad, la actividad principal en su caso y anule el método y realice la operación.

//Interface public interface OnRefreshViewListner{ public void refreshView(); } //Main Activity MainActivity extends Activity implements OnRefreshViewListner { //Other methods @Override public void refreshView(){ // write refresh code here } } //Initialize Interface in adapter constructor public class YourAdapter extends BaseAdapter { private OnRefreshViewListner mRefreshListner; public YourAdapter (Context context) { mRefreshListner = (OnRefreshViewListner)context; } //call MainActivity method mRefreshListner.refreshView(); }


En Adapter llama a tu resetMethod de esta manera

((MainActivity)context).resetGraph(context);


En el adaptador, no debe crear una nueva instancia de MainActivity y llamar a resetGraph (). Debería usar la instancia de MainActivity, que creó el adaptador. Envíe la instancia de MainActivity al adaptador, el new Adapter(this) y guárdelo en el adaptador.


Puede cambiar una vista desde el contexto de un adaptador como este: convertir el contexto a la actividad. use el método findviewbyid para encontrar la vista que desea. iniciarlo a una variable.

View v = ((Activity)getContext()).findViewById(WHATEVER_VIEW_COMPONENT_YOU_WANT);

cambia la variable como quieras Nota. No olvides usar el tipo de vista que quieras y aplicarle el método de búsqueda.

Si desea llamar a un método, simplemente transfiera el contexto a MainActivity y llámelo.