我正在尝试为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。关于此问题有几个主题,例如this,this和this,但似乎没有提供解决方案,因为他们没有“最佳答案”,而我尝试了许多答案但没有工作,至少对我而言。 你们有没有对此进行过处理并有效地解决了这个问题?如果是这样,请帮帮我