RecyclerView里面viewpager里面的片段notifydatasetchanged不工作
问题描述:
我在一个片段里面有一个recyclerview,这个片段在一个视图寻呼机里面。RecyclerView里面viewpager里面的片段notifydatasetchanged不工作
即使相同的代码在我的其他项目中工作,notifydatasetchanged()也不起作用。我能看到的唯一区别是它现在在视图传呼机里面?
这是怎么通知的变化:
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();
}
我在OnCreate中创建recylerview这样的:
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);
难道我失去参照阵列或者是财产以后做与viewpager?
我一直坚持这两天,现在任何帮助非常感谢。
在此先感谢
答
确保updateRecyler()
被调用, 并试图改变adapter.notifyDataSetChanged();
到rv.getAdapter().notifyDataSetChanged();
这个曾经为我工作。
答
我面临同样的问题,然后我发现了一个临时的解决方案,而不是使用notifyDataSetChanged()
使用
recyclerView.setAdapter(adapter);
recyclerView.scrollToPosition(postion);