【发布时间】:2014-09-29 18:39:02
【问题描述】:
我正在尝试通过从数据库中获取记录并将它们显示在左侧抽屉中来创建导航抽屉。
通过执行以下操作,我可以成功,但问题是,当在导航抽屉中单击菜单项时,我想获取它的标题。但我只是得到它的位置。
DrawerLayout mDrawerLayout = (DrawerLayout) findViewById(R.id.drawer_layout);
List<DataItems> myTest = myDbAdapter.getValuesFromDb(); // method in DbAdapter class
// to get records from db.
// Pass the data to ListView adapter
MyNavigationDrawerAdapter adapter = new MyNavigationDrawerAdapter(
this,
R.layout.drawer_listview_item,
myTest);
// Set the adapter for the list view
mDrawerList.setAdapter(adapter);
// set the item click listener
mDrawerList.setOnItemClickListener(new NavigationDrawerItemClickListener());
// navigation drawer click listener
private class NavigationDrawerItemClickListener implements ListView.OnItemClickListener
{
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id)
{
Log.i("Position", "" + position); // prints the position successfully
Log.i("Value", "" + myTest.get(position).getTitle()); // prints null
}
}
你能告诉我,为什么这个 myTest.get(position).getTitle() 是空的。我在这里错过了什么?
【问题讨论】:
-
为什么不创建一个字符串数组并根据位置取值
-
尝试为
myTest中的值调试代码 -
@SMR 你的意思是说我应该尝试这样做:
String[] array = new String[...]而不是 ListmyTest? -
myTest.get(position).getTitle() 为空,因为您没有在
Model类中设置任何标题。发布您的型号代码。 -
@BharathMg 如果我尝试这个
myTest.get(position)我仍然得到空值。
标签: android navigation-drawer onitemclicklistener