【问题标题】:How to get the title from Navigation drawer menu item如何从导航抽屉菜单项中获取标题
【发布时间】: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[...] 而不是 List myTest?
  • myTest.get(position).getTitle() 为空,因为您没有在 Model 类中设置任何标题。发布您的型号代码。
  • @BharathMg 如果我尝试这个myTest.get(position) 我仍然得到空值。

标签: android navigation-drawer onitemclicklistener


【解决方案1】:

在你的 onClickListener 中尝试:

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

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

 }

【讨论】:

    【解决方案2】:

    使用

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

    而不是使用

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

    【讨论】:

    • 这给出了一个错误:ArrayList 无法解析为一个类型
    • 对不起,将其更改为您的 myDBAdapter.getValuesFromDB 返回的任何内容我猜它是 List
    猜你喜欢
    • 1970-01-01
    • 2016-11-08
    • 2016-05-27
    • 1970-01-01
    • 1970-01-01
    • 2013-06-13
    • 2020-02-18
    • 2015-11-04
    • 1970-01-01
    相关资源
    最近更新 更多