Android Recyclerview内部片段内部viewpager notifydatasetchanged不工作

Android Recyclerview内部片段内部viewpager notifydatasetchanged不工作,android,android-fragments,android-recyclerview,notifydatasetchanged,Android,Android Fragments,Android Recyclerview,Notifydatasetchanged,我在片段中有一个recyclerview,该片段在一个视图寻呼机中 notifydatasetchanged()不起作用,即使在我的其他项目中也可以使用相同的代码。我能看到的唯一区别是它现在在一个视图寻呼机内 以下是通知更改的方式: public void updateRecyler(){ // Clear the current array alarmsFromSP.clear(); // Update the array (This is working the a

我在片段中有一个recyclerview,该片段在一个视图寻呼机中

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);
public类fragmentallarms扩展了Fragment{
//字符串中报警数据的Arraylist
ArrayList alarmsFromSP;
tabr;
回收视图rv;
报警适配器;
@凌驾
创建时的公共void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
}
@凌驾
CreateView上的公共视图(布局、充气机、视图组容器、捆绑包保存状态){
视图v=充气机。充气(R.layout.fragment\u all\u报警,容器,错误);
//回收商
rv=(RecyclerView)v.findViewById(R.id.mainAlarmRecyclerView);
rv.setLayoutManager(新的LinearLayoutManager(getActivity());
//从共享首选项字符串中获取报警的保存数据
alarmsFromSP=AlarmCollection.getAlarms(getActivity());
System.out.println(“StringIs”+alarmsFromSP.size());
//适配器
适配器=新的AlarmsAdapter(getActivity(),alarmsFromSP);
rv.设置适配器(适配器);
我是否可能丢失了对数组的引用,或者这与viewpager有关

我已经被困在这两天了,现在非常感谢任何帮助


提前感谢

确保调用了
updateRecyler()
, 并尝试将
adapter.notifyDataSetChanged();
更改为
rv.getAdapter().notifyDataSetChanged();


这曾经对我有效。

确保调用了
updateRecyler()
, 并尝试将
adapter.notifyDataSetChanged();
更改为
rv.getAdapter().notifyDataSetChanged();


这曾经对我有效。

我也遇到过同样的问题,然后我找到了一个临时解决方案,而不是使用
notifyDataSetChanged()
use

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

我遇到了同样的问题,然后我找到了一个临时解决方案,而不是使用
notifyDataSetChanged()
use

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