0

Ich habe eine Recyclerview innerhalb eines Fragments und dieses Fragment ist in einem View-Pager.Recyclerview innerhalb Fragment innerhalb viewpager notifydatasetchanged funktioniert nicht

notifydatasetchanged() funktioniert nicht, obwohl der gleiche Code in anderen Projekten von mir funktioniert. Der einzige Unterschied, den ich sehen kann, ist, dass es sich jetzt in einem Pager befindet.

Dies ist, wie die Änderung mitteilen:

public void updateRecyler(){ 

    // Clear the current array 
    alarmsFromSP.clear(); 
    // Update the array (This is working the array size is changing) 
    alarmsFromSP.addAll(AlarmCollection.getAlarms(getActivity())); 
    // Notify the change 
    adapter.notifyDataSetChanged(); 
} 

Ich schaffe das recylerview in oncreate wie folgt aus:

public class FragmentAllAlarms extends Fragment { 

    // Arraylist of the alarm data from the strings 
    ArrayList<Alarm> alarmsFromSP; 
    tabRefreshReceiver r; 
    RecyclerView rv; 
    AlarmsAdapter adapter; 


    @Override 
    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
    } 

    @Override 
    public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { 


     View v = inflater.inflate(R.layout.fragment_all_alarms, container, false); 

     // Recycler 
     rv = (RecyclerView) v.findViewById(R.id.mainAlarmRecyclerView); 
     rv.setLayoutManager(new LinearLayoutManager(getActivity())); 

     // Get saved data for alarms from the shared preferences string 
     alarmsFromSP = AlarmCollection.getAlarms(getActivity()); 
     System.out.println("StringIs"+alarmsFromSP.size()); 

     // Adapter 
     adapter = new AlarmsAdapter(getActivity(), alarmsFromSP); 
     rv.setAdapter(adapter); 

Ist es möglich, ich Verweis auf das Array verliere oder ist es somthing zu tun mit dem Viewpager?

Ich habe mit diesem seit zwei Tagen fest, jetzt wird jede Hilfe sehr geschätzt.

Vielen Dank im Voraus

Antwort

0

stellen Sie sicher, dass updateRecyler() genannt wird, und versuchen adapter.notifyDataSetChanged();-rv.getAdapter().notifyDataSetChanged();

dies einmal für mich gearbeitet zu ändern.

-1

ich das gleiche Problem konfrontiert, dann fand ich eine vorübergehende Lösung, anstelle der Verwendung von notifyDataSetChanged() Verwendung

recyclerView.setAdapter(adapter); 
recyclerView.scrollToPosition(postion); 
Verwandte Themen