itmes的Android导航在线抽屉更新
我被困在需要动态/在线更新导航抽屉项目的位置 我的导航抽屉基于本教程 我想根据存储在共享首选项中的值更新抽屉中的一项。 实际上,我想显示“我的帐户”或“注册”。 为了区分,如果用户登录或未登录,我将在共享首选项中存储一个布尔值。 现在,我正在itmes的Android导航在线抽屉更新,android,fragment,drawer,on-the-fly,Android,Fragment,Drawer,On The Fly,我被困在需要动态/在线更新导航抽屉项目的位置 我的导航抽屉基于本教程 我想根据存储在共享首选项中的值更新抽屉中的一项。 实际上,我想显示“我的帐户”或“注册”。 为了区分,如果用户登录或未登录,我将在共享首选项中存储一个布尔值。 现在,我正在CustomDrawerDatapter的getView()API中检查这一点。 这样,文本将更新,但不会立即更新。只有在我调用另一个抽屉项目并打开相关片段之后 下面是getView()的新增代码: 如何“动态”更新抽屉项?不要尝试在getView()中更
CustomDrawerDatapter
的getView()
API中检查这一点。
这样,文本将更新,但不会立即更新。只有在我调用另一个抽屉项目并打开相关片段之后
下面是getView()的新增代码:
如何“动态”更新抽屉项?不要尝试在
getView()中更改适配器列表。当用户登录时更改列表,然后在适配器上调用notifyDataSetChanged()
。嗨,迈克,这正在工作。谢谢!只需要找到一种正确的方法来更新登录类/主要活动片段。目前,我在onDrawerOpened()中进行更新,这会导致文本更新稍微延迟。
Boolean UserLoggedIn = helper.getUserLoggedInFromSharedPrefs();
Log.d(TAG, "UserLoggedIn=" + String.valueOf(UserLoggedIn));
if (!UserLoggedIn) {
drawerItemList.set(1, new DrawerItem("Login", R.drawable.ic_launcher));
}
else {
drawerItemList.set(1, new DrawerItem("My account", R.drawable.ic_launcher));
}