Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/212.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
Android 不确定是什么';这是怎么回事_Android_Android Preferences - Fatal编程技术网

Android 不确定是什么';这是怎么回事

Android 不确定是什么';这是怎么回事,android,android-preferences,Android,Android Preferences,所以我有一个共享的参考,我打电话给logged_。我得到首选项并检查它是否为1,如果是,它应该开始新的活动,否则我希望它向我显示它实际上是什么。代码如下: @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); PreferenceManager.setDefaultValues(this, R.xml.prefe

所以我有一个共享的参考,我打电话给logged_。我得到首选项并检查它是否为1,如果是,它应该开始新的活动,否则我希望它向我显示它实际上是什么。代码如下:

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        PreferenceManager.setDefaultValues(this, R.xml.preferences, false);

        prefs = getSharedPreferences("preferences", MODE_PRIVATE);

        // Check if the user is logged in
        String loggedIn = prefs.getString("logged_in", null);

        if(loggedIn != "1") {
            setContentView(R.layout.main);
            TextView textView = (TextView) findViewById(R.id.login_status);
            textView.setText(prefs.getString("logged_in", null));
        }

        else {
            startActivity(new Intent(this, LoggedInActivity.class));
        }
    }

真正奇怪的是,它将加载主视图而不是启动LoggedIn活动,但随后它将首选的loggeu显示为1。所以根据我所看到的,它应该开始新的活动,但事实并非如此。我真的很困惑。非常感谢您的帮助。

您正在比较引用而不是字符串值。也就是说,这两个引用是否指向同一个对象,而不是这两个对象的内容是否相同。你应该改为:

if( !loggedIn.equals("1") )
但是请注意,如果
loggedIn
null
,则该代码将引发
NullPointerException
。所以这更合适:

if( loggedIn == null || !loggedIn.equals("1") )

也就是说,在这种特殊情况下,最好使用
int
首选项。

比较引用而不是字符串值。也就是说,这两个引用是否指向同一个对象,而不是这两个对象的内容是否相同。你应该改为:

if( !loggedIn.equals("1") )
但是请注意,如果
loggedIn
null
,则该代码将引发
NullPointerException
。所以这更合适:

if( loggedIn == null || !loggedIn.equals("1") )

也就是说,在这种特殊情况下,您最好使用
int
首选项。

Oh snap!谢谢你,好先生!我觉得我应该知道这一点。无论如何,我不会再犯那个错误了!谢谢你!!!哦,快!谢谢你,好先生!我觉得我应该知道这一点。无论如何,我不会再犯那个错误了!谢谢你!!!