2014-09-29 194 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(); 

} 
相關問題