1

我有一个使用 JFeinstein 的 SlidingMenu 库的应用程序。我正在为导航 ListView 使用自定义适配器。我没有任何问题。

由于新的 SupportLibrary 版本引入了 ActionBarCompat 和 NavigationDrawer,我想摆脱 ActionBarSherlock 和 SlidingMenu,因为我认为依赖“官方”库是一种更简洁的解决方案。今天我想用 NavigationDrawer 交换 SlidingMenu 库。我保持适配器不变,更改了 main_activity.xml,就像在 d.android.com 上的官方教程中解释的那样。

但是 ListView 中没有呈现任何项目。滑动效果很好,但我看不到任何物品。我没有对适配器进行任何更改,因为它在 SlidingMenu 库上运行良好。Adapter#getCount() 返回 10 - 所以它肯定不是空的。我还调用了 Adapter#notifyDataSetChanged() 以确保所有项目都将被渲染,但永远不会调用 Adapter#getView(...)。

如果我将另一个 ListView 放到 MainActivity 的布局中(放入代表我的内容的 RelativeLayout),这个 ListView 也不会显示任何项目。我复制了一些与 SimpleAdapter 一起使用的基本适配器示例,但即使使用这个,也没有 ListView 显示任何项目!

我的活动中的代码:

private void setupSidemenu() {
        // init sidemenu ui
        DrawerLayout drawerLayout = (DrawerLayout)findView(R.id.drawer_layout);
        ListView list = (ListView) findViewById(R.id.left_drawer);
        menuAdapter = new SideMenuAdapter(getApplicationContext());
        list.setAdapter(menuAdapter);
    }
4

1 回答 1

0

我终于找到了问题所在。我正在使用 AndroidAnnotations 并且不知何故我已经覆盖了 Activity#onCreate(Bundle) 但还在 @EActivity(R.layout.xxx) 注释处指定了一个布局。由于某些原因,#setupSidemenu() 被调用但影响了另一个列表视图?哪个没有显示?我仍然不清楚确切的原因,但我现在正在使用 @AfterViews 并且我的 ListView 已填满。

于 2013-08-03T09:27:21.233 回答