Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/216.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/linux/26.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
itmes的Android导航在线抽屉更新_Android_Fragment_Drawer_On The Fly - Fatal编程技术网

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));            
    }