【发布时间】:2018-05-28 09:19:30
【问题描述】:
我正在尝试按日期对 RecyclerView 进行排序,但我尝试了太多东西,我不知道现在该尝试什么。问题出在 adapter.notifyDataSetChanged(); 行,因为如果我不放不会显示错误,但也不会更新 recyclerview
这就是我现在所拥有的,并向我显示了那个错误。
无法启动活动 ComponentInfo{st.stc/sharetaxi.sharetaxicabdriver.PendingTrajectRecyclerView}:java.lang.NullPointerException:尝试调用虚拟方法 'void android.support.v7.widget.RecyclerView$Adapter.notifyDataSetChanged()' on一个空对象引用'
首先,我将所有轨迹放在 GetAllTrajects() 方法中,然后在 Collections.sort 中解析 TextView 的日期。
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_pending_traject_recycler_view);
listPendingTraject=new ArrayList<>();
recyclerPendingTraject = (RecyclerView)findViewById(R.id.pendingTrajectRecyclerView);
recyclerPendingTraject.setLayoutManager(new LinearLayoutManager(this));
GetAllTrajects();
Collections.sort(listPendingTraject, new Comparator<PendingTrajectPOJO>() {
@Override
public int compare(PendingTrajectPOJO pendingTrajectPOJO, PendingTrajectPOJO t1) {
String Date = pendingTrajectPOJO.getDate();
String Date1 = t1.getDate();
Date date=null,date1=null;
SimpleDateFormat formatDate = new SimpleDateFormat("dd/MMM/yyyy");
try {
date = formatDate.parse(Date);
date1 = formatDate.parse(Date1);
} catch (ParseException e) {
e.printStackTrace();
}
return date.before(date1) ? 1 : 0;
}
});
adapter.notifyDataSetChanged();
}
在方法GetAllTrajects里面当我把所有的信息我调用的方法showPendingTraject()
private void showPendingTraject() {
listPendingTraject.add(new PendingTrajectPOJO(nameUsers,coordenatesOriginBundle,Origin,Destination,DataIHora,coordenatesDestiBundle,contadorCordenades));
Log.d("ID",""+nomUser);
adapter = new AdapterPendingTraject(listPendingTraject);
recyclerPendingTraject.setAdapter(adapter);
}
【问题讨论】:
标签: java android collections android-recyclerview nullpointerexception