How to refresh a view in main activity from an adapter?

后端 未结 4 608
隐瞒了意图╮
隐瞒了意图╮ 2021-01-27 12:03

I have a graph in main activity also I have a recycler view in main activity. Custom adapter is used for recyclerview. I have a check box and swipe layout in list item layout. i

相关标签:
4条回答
  • 2021-01-27 12:40

    In the adapter, you should not create a new instance of MainActivity and call resetGraph(). You should use the instance of MainActivity, that created the adapter. Send the instance of MainActivity to the adapter, new Adapter(this) and save it in adapter.

    0 讨论(0)
  • 2021-01-27 12:46

    In Adapter call your resetMethod this way

    ((MainActivity)context).resetGraph(context);
    
    0 讨论(0)
  • 2021-01-27 12:50

    Create a interface that implement Activity, Main activity in your case and override method and perform operation.

    //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();
    }
    
    0 讨论(0)
  • 2021-01-27 12:52

    You can change a view from the context of an adapter like this : cast context to activity. use findviewbyid method to find the view you want. initiliaze it to a variable.

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

    change the variable as you want. note. Don't forget to use the type of view that you want and cast the findview method to it.

    If you want to call a method just cast the context to MainActivity and call it.

    0 讨论(0)
提交回复
热议问题