Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/377.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
Java Android在登录后存储用户ID_Java_Android_Android Sharedpreferences - Fatal编程技术网

Java Android在登录后存储用户ID

Java Android在登录后存储用户ID,java,android,android-sharedpreferences,Java,Android,Android Sharedpreferences,我想知道在用户登录后存储用户ID的最佳方法是什么?我刚刚开始Android开发,并阅读了关于共享首选项的信息,但这似乎不起作用 这发生在我的后勤活动中: User user = dbHelper.findUser(email); SharedPreferences preferences = getSharedPreferences("preferences", MODE_PRIVATE); SharedPreferences.Editor ed

我想知道在用户登录后存储用户ID的最佳方法是什么?我刚刚开始Android开发,并阅读了关于共享首选项的信息,但这似乎不起作用

这发生在我的
后勤活动中

        User user = dbHelper.findUser(email);

        SharedPreferences preferences = getSharedPreferences("preferences", MODE_PRIVATE);
        SharedPreferences.Editor editor = preferences.edit();
        editor.putString("user_id", user.getId());
        editor.commit();

        Intent mainIntent = new Intent(LoginActivity.this, MainActivity.class);
        startActivity(mainIntent);
在my
MainActivity
中,我希望获得登录用户的ID,如下所示:

SharedPreferences preferences = getSharedPreferences("preferences",
                MODE_PRIVATE);
        String user_id = prefs.getString("user_id", "0");

现在,我需要这个用户id以便基于用户构建列表,所以我使用这个id进行数据库查询。传递这个id的最佳方法是什么?我可以故意把它传下去,但最好把它放在中央的某个地方。我在多个活动中确实需要此ID。

已解决。正如用户Commonware指出的,该值没有返回我想要的值,因此总是从我的SharedReferences中选择默认值。

请详细解释“似乎不起作用”的含义。@Commonware因为它永远不会获得正确的ID。它似乎总是只获得默认值,即“0”在这种情况下,除了在主应用程序线程上执行大量I/O操作,并且不对
“user\u id”
字符串使用通用定义(这样您就不会意外地在某个地方引入输入错误),您所做的一切似乎都是可以的。你确定
user.getId()
正在返回你认为是的东西吗?@commonware该死,你是对的。这是正确的方法,但我使用了一些重载函数,并使用了错误的参数。一直都有一个空值。谢谢:)