1

Android アプリの開発は初めてです。AndroidManifest.xml を使用して開始アクティビティを設定する方法は知っていますが、開始アクティビティを選択する前に、まず何かを確認する方法が必要です。

私の問題: loginActivity と mainActivity を作成しました。私は次のことをしたい: ログインすると、フラグを 1 に設定し、次のアプリの起動時に、ログインではなく mainActivity を直接表示したい。

それを行う方法はありますか?最初のアクティビティを表示する前に、ログインしているかどうかを確認できるスプラッシュスクリーンを作成することを考えました。

ありがとう、フィリップ

更新されたコード - 動作:

protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);

    // get preferences
    SharedPreferences userDetails = getApplicationContext().getSharedPreferences("userdetails", 0);
    String savedEmail = userDetails.getString("email", "");
    String savedPassword = userDetails.getString("password", "");
    Boolean savedRemember = userDetails.getBoolean("remember", false);
    Boolean savedLogged = userDetails.getBoolean("logged", false);

    // check if already logged in
    if(savedLogged) {
        // start the overview
        Intent intent = new Intent(this, ActivityOverview.class);
        startActivity(intent);
        finish();
    }
    else {
        // initialize the form layout
        setContentView(R.layout.activity_login);

        // get views
        this.email = (EditText)findViewById(R.id.editTextEmail);
        this.password = (EditText)findViewById(R.id.editTextPassword);
        this.remember = (CheckBox)findViewById(R.id.checkBoxRemember);

        // set values to views
        this.email.setText(savedEmail);
        this.password.setText(savedPassword);
        this.remember.setChecked(savedRemember);
    }
}
4

4 に答える 4

0

私のアプリの1つに似たようなものがあります。自動ログインするかどうかをユーザーに選択させました。これは に保存されますSharedPreferences

アプリの起動時とメインページで、確認する必要があります - BEFOREsetContentView(R.layout.activity_login);set finish();afterstartActivity();

if(savedLogged) {

    Intent intent = new Intent(this, ActivityOverview.class);
    startActivity(intent);
    finish();
}
setContentView(R.layout.activity_login);
于 2012-11-22T18:13:29.030 に答える
0

スプラッシュスクリーンは本当に必要ありません。

ユーザーがアプリに正常にログインしたら、SharedPreferencesのブール値フラグを true に設定します。ログイン アクティビティでこのフラグが true かどうかを確認し、true のonCreate()場合は、を使用しIntentてメイン アクティビティを起動します。

于 2012-11-22T17:54:30.590 に答える
0

アクティビティを表示する必要はありません。コード フローが正確にどうなるかはわかりませんが、LoginActivity から安全に開始できます。あなたがすでにログインしている場合(それがあなたにとって何を意味するにせよ) 、あなたのonCreate()チェックで、そうであれば即座に MainActivity を開始し、LoginActivity をfinish().

于 2012-11-22T17:54:47.407 に答える
0

スプラッシュスクリーンを使用することをお勧めします。loginActivity を開始すると、ログイン画面が一瞬表示されます。これは望ましくありません。

于 2012-11-22T18:02:39.303 に答える