2014-09-29 197 views
1

得到标题我试图通过从数据库获取记录并在左侧抽屉中显示它们来创建导航抽屉。如何从导航抽屉菜单项

通过执行以下操作,我能够成功完成,但问题是,当在导航抽屉中单击菜单项时,我想获取它的标题。但我只是获得它的立场。

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(位置).getTitle()这是空。我在这里错过了什么?

+0

你为什么不创建一个字符串数组和取值根据位置 – SMR 2014-09-29 10:02:05

+1

尝试在myTest中调试你的代码的值 – Pr38y 2014-09-29 10:06:34

+0

@SMR你的意思是说我的应该这样做: 'String [] array = new String [...]'而不是List myTest? – 2014-09-29 10:09:37

回答

0

使用

List<DataItems> myTest = new List<DataItems>(myDbAdapter.getValuesFromDb()); 

,而不是使用

List<DataItems> myTest = myDbAdapter.getValuesFromDb(); 
+0

这给出了一个错误: ** ArrayList 无法解析为类型** – 2014-09-29 10:23:49

+0

对不起,将其更改为任何** myDBAdapter.getValuesFromDB **正在返回我想它是列表 SMR 2014-09-29 10:38:46

0

在你onClickListener尝试:

public void onItemClick(AdapterView <?> parent, View view, int position, long id){ 

    DataItems dataItem = adapter.getItem(position); 
    String mString = dataItem.getTitle(); 

} 
相关问题