gpt4 book ai didi

Android共享偏好条件 Activity 切换

转载 作者:行者123 更新时间:2023-11-29 15:31:24 25 4
gpt4 key购买 nike

我有一个 Android 应用程序,用于在我的网站上注册用户。如果我的共享首选项文件显示没有注册用户信息,我的第一个任务是注册用户。

如果我的应用有注册用户,我会提供以下代码来简单地自动切换到“主页” Activity :

    public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.signin);

if( USERPREFERENCES.getString(USERPREFERENCES_USERMAIL, "") == null && USERPREFERENCES.getString(USERPREFERENCES_USERID, "") == null && USERPREFERENCES.getString(USERPREFERENCES_USERNAME, "") == null){
//setContentView(R.layout.signin);
Toast.makeText(SignIn.this, "testing...", Toast.LENGTH_LONG).show();
}else{
Intent intent = new Intent(SignIn.this, Confirmed.class);
startActivity(intent);
}
... other code

因此,从我的默认 Activity signin.java 开始,应用程序要么切换到已确认 Activity ,要么继续显示登录 Activity 。

我的问题是,当系统正常工作并且我切换到 Confirmed Activity 时,我提供了一个注销 onclick 监听器,如下所示:

 signout.setOnClickListener(new OnClickListener() {

@Override
public void onClick(View v) {
// TODO Auto-generated method stub
//USERPREFERENCES.cl
Toast.makeText(Confirmed.this, "signout responding!", Toast.LENGTH_LONG).show();
USERPREFERENCES.edit().clear().commit();
}
});

它响应并清除我所有共享的首选项变量。但是,当我使用我的菜单手动切换到登录 Activity 时,我仍然会切换回确认 Activity 。

即使我可以确认变量为空,也会发生这种情况。

最佳答案

这几乎永远不会是真的:

USERPREFERENCES.getString(USERPREFERENCES_USERMAIL, "")  == null

如果改用它会怎么样?

if( USERPREFERENCES.getString(USERPREFERENCES_USERMAIL, null)  == null && USERPREFERENCES.getString(USERPREFERENCES_USERID, null) == null && USERPREFERENCES.getString(USERPREFERENCES_USERNAME, null) == null){
//setContentView(R.layout.signin); TRY TO AVOID DOING THIS THING!!!!!
Toast.makeText(SignIn.this, "testing...", Toast.LENGTH_LONG).show();
}else...

此外,作为建议...而不是在 Activity 之间切换...如果您只创建一个 Signing.java Activity 并在其布局中放置一个 ViewFlipper 会怎么样。这样,您的应用不仅速度更快,而且更易于维护。

关于Android共享偏好条件 Activity 切换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6177770/

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