gpt4 book ai didi

java - Android保存用户登录注销状态

转载 作者:行者123 更新时间:2023-11-30 04:32:45 30 4
gpt4 key购买 nike

我再次需要一些关于 Android SharedPreference 的帮助。我一直在寻找一种方法来保存用户状态,无论他是否登录。所以我做了这部分,但现在问题是其他的。我有一个tabhost 包含几个选项卡,登录页面是从其中一个子 Activities 启动的。这里有一个小例子:

TAB1 - TAB2 - TAB3

TAB1 --> ACT1 (child activity of TAB1) ACT1 ---> Login Page.

所以我使用 SharedPreferences 来获取和设置 isLoggedIn 状态,但问题是我想在关闭登录页面时重新加载 UI,以便 TAB1 可以显示新元素。

这是我现在的代码:

登录页面:

SharedPreferences isLogged = PreferenceManager.getDefaultSharedPreferences(getApplicationContext());
SharedPreferences.Editor editor = isLogged.edit();
editor.putBoolean("isLoggedIn", true);
editor.commit();
this.notifyAll();

在 TAB1 中我有这个:

SharedPreferences isLogged = PreferenceManager.getDefaultSharedPreferences(getApplicationContext());
boolean isLoggedIn = isLogged.getBoolean("isLoggedIn", false);

知道如何解决这个问题吗?

最佳答案

据我了解您的问题,您想在用户登录您的“LoginActivity”时重新识别,以便您可以重新加载“TabActivity”,对吗?您可以通过将结果返回到父 Activity 来执行此操作。

public class StackOverflowActivity extends Activity {

public static final int LOGIN_REQUEST = 100;

@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);

Button btn = (Button) findViewById(R.id.button1);
btn.setOnClickListener(new View.OnClickListener() {

@Override
public void onClick(View v) {
Intent i = new Intent(StackOverflowActivity.this, Login.class);
startActivityForResult(i, LOGIN_REQUEST);
}
});
}

@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
switch (requestCode) {
case LOGIN_REQUEST:
// TODO implement UI refresh
Toast.makeText(getApplicationContext(), "I am coming from the login activity!",
Toast.LENGTH_LONG).show();
break;
default:
Toast.makeText(getApplicationContext(), "Unexpected request code!",
Toast.LENGTH_LONG).show();
break;
}

}
}

关于java - Android保存用户登录注销状态,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7404254/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com