NullPointerException尝试使用Realm为RecyclerView创建上下文菜单

时间:2017-05-22 00:22:44

标签: java android nullpointerexception android-recyclerview realm

我正在尝试为RecyclerView创建一个上下文菜单,其中显示了Realm结果列表。

我已经在ViewHolder构造函数中注册了上下文菜单,在ViewHolder类中实现了View.OnCreateContextMenuListener,并实现了它的方法。但是,当我在创建上下文菜单时尝试从列表中检索项目时,我得到NullPointerException

@Override
public void onCreateContextMenu(ContextMenu menu, View v, ContextMenu.ContextMenuInfo menuInfo) {
    AdapterView.AdapterContextMenuInfo info = (AdapterView.AdapterContextMenuInfo) menuInfo;

    menu.setHeaderTitle(entries.get(info.position).getName());

    menu.add(0,v.getId(),0,"Delete");
    menu.add(0,v.getId(),0,"Cancel");
}

具体在这一行:

menu.setHeaderTitle(entries.get(info.position).getName());

请记住,“条目”是我的Realm数据库中“Entry”类的Realm结果列表。

所以,显然我无法访问它在那里的位置。有谁知道如何处理这个?

这是错误:

java.lang.NullPointerException: Attempt to read from field 
'int android.widget.AdapterView$AdapterContextMenuInfo.position' 
on a null object reference
at com.example.developer.appname.adapters.EntryAdapter$ViewHolder.onCreateContextMenu(EntryAdapter.java:101)

修改

正如EpicPandaForce指出的那样,真正的空对象不是领域对象,而是menuInfo。关于此问题有几个主题,例如thisthisthis,但似乎没有提供解决方案,因为他们没有“最佳答案”,而我尝试了许多答案但没有工作,至少对我而言。 你们有没有对此进行过处理并有效地解决了这个问题?如果是这样,请帮帮我

0 个答案:

没有答案