gpt4 book ai didi

java - 仅显示一次登录 Activity ,并在下次启动主要 Activity 时显示

转载 作者:行者123 更新时间:2023-11-29 09:52:32 25 4
gpt4 key购买 nike

我想在第一次进入应用程序时打开 login_activity,然后在第二次进入应用程序时打开 main_activity。

我创造了一些东西,但它不起作用。所以我想知道我做错了什么?这是我的登录 Activity

protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_login);

userName = (EditText) findViewById(R.id.username);
userPhone = (EditText) findViewById(R.id.userPhone);
loginBtn = (Button) findViewById(R.id.buttonLogin);

dbHandler = new LogsDBHandler(this);

loginBtn.setOnClickListener(this);
setTitle("AMS - biomasa | prijava");

SharedPreferences pref = getSharedPreferences("ActivityPREF", Context.MODE_PRIVATE);
if (pref.getBoolean("activity_executed", false)) {
Intent intent = new Intent(this, MainActivity.class);
startActivity(intent);
finish();
} else {
SharedPreferences.Editor edt = pref.edit();
edt.putBoolean("activity_executed", true);
edt.commit();
}
}

public void insert() {
User user = new User (
userName.getText().toString(),
userPhone.getText().toString());
dbHandler.addUser(user);
Toast.makeText(getBaseContext(), "Prijavljeni ste!", Toast.LENGTH_SHORT).show();

}

@Override
public void onClick(View v) {
if (v == loginBtn && validateUser()) {
insert();
}
}

在主要 Activity 中,我只有图像和两个按钮。在 list 中,我将启动器添加到主 Activity 和登录 Activity 。

<activity android:name=".MainActivity">
<intent-filter>
<action android:name="android.intent.action.MAIN"></action>
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity android:name=".LoginActivity">
<intent-filter>
<action android:name="android.intent.action.MAIN"></action>
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>

我在这里做错了什么?

最佳答案

  1. 创建一个名为 SplashActivity 的启动 Activity

    public class SplashActivity extends Activity{

    protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_splash);

    // decide here whether to navigate to Login or Main Activity

    SharedPreferences pref = getSharedPreferences("ActivityPREF", Context.MODE_PRIVATE);
    if (pref.getBoolean("activity_executed", false)) {
    Intent intent = new Intent(this, MainActivity.class);
    startActivity(intent);
    finish();
    } else {
    Intent intent = new Intent(this, LoginActivity.class);
    startActivity(intent);
    finish();
    }
    }

    }
  2. 在您的 LoginActivity 中,只需将 activity_executed 设置为 true

    public void insert() {
    User user = new User (
    userName.getText().toString(),
    userPhone.getText().toString());
    dbHandler.addUser(user);
    Toast.makeText(getBaseContext(), "Prijavljeni ste!", Toast.LENGTH_SHORT).show();

    //set activity_executed inside insert() method.
    SharedPreferences pref = getSharedPreferences("ActivityPREF", Context.MODE_PRIVATE);
    SharedPreferences.Editor edt = pref.edit();
    edt.putBoolean("activity_executed", true);
    edt.commit();

    }

如下更改 list -

<activity android:name=".MainActivity"/>

<activity android:name=".LoginActivity" />

<activity android:name=".SplashActivity" >

<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>

</activity>

关于java - 仅显示一次登录 Activity ,并在下次启动主要 Activity 时显示,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35743615/

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