1

5つのインターフェースを持つアプリケーションを開発しています

ユーザーがパスワードを入力する必要があるアクティビティがあります。パスワードを入力した後、ユーザーは次のアクティビティに移動しますが、ユーザーが戻るボタンをクリックしてパスワードアクティビティに戻ると、入力したパスワードがありません...どうすればよいですか入力したパスワードを保持しますか?

コード:

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

        public void onClick(View v1) {
            Intent backIntent = new Intent();
            backIntent.setClass(getApplicationContext(), LockAppActivity.class);
            backIntent.setFlags(Intent.FLAG_ACTIVITY_BROUGHT_TO_FRONT);
            startActivity(backIntent);
            finish();
        }
    });

アプリがアクティビティ A --> B --> C --> D --> E で始まるとします。

ユーザーが C から B に移動し、アクティビティ B に「非アクティブ化」ボタンがあり、ユーザーがそれを押すと、すべてのユーザー設定がクリアされてアプリケーションが終了しますが、ボタンを押すと、レイアウトが表示されますC...どうすればこれを変更できますか?

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

        public void onClick(View v){ 
            final String STORAGE = "UniqueID_IMSI";
            SharedPreferences unique = getSharedPreferences(STORAGE, 0);
            SharedPreferences.Editor editor1 = unique.edit();
            editor1.putString("identifier", "");
            editor1.putString("simIMSI", "");
            editor1.commit();

            final String LOGIN_PASSWORD = "Login_Password";     
            SharedPreferences loginPassword = getSharedPreferences(LOGIN_PASSWORD, 0);
            SharedPreferences.Editor editor2 = loginPassword.edit();
            editor2.putString("loginPassword", "");
            editor2.commit();

            final String LOCK_APP_PASSWORD = "LockAppPassword";
            SharedPreferences userPassword = getSharedPreferences(LOCK_APP_PASSWORD, 0);
            SharedPreferences.Editor editor3 = userPassword.edit();
            editor3.putString("password", "");
            editor3.commit();

            final String PHONE_NUMBER = "Phone_Number";         
            SharedPreferences phone = getSharedPreferences(PHONE_NUMBER, 0);
            SharedPreferences.Editor editor4 = phone.edit();
            editor4.putString("phoneNumber", "");
            editor4.commit();

            finish();
        }
    });
}
4

2 に答える 2

1

入力したパスワードを維持するにはどうすればよいですか

ユーザーが入力したパスワードを SharedPreference に保存し、Activity の onResume() 関数で、保存されたパスワードを SharedPrefrence から呼び出し、ユーザーに表示します。アクティビティのライフサイクルを理解するために時間を費やしたいと思うかもしれません。

アプリケーションが終了します

このリンクを見てください。@Romain Guy は Google の社員です。アプリの設計を再考することをお勧めします。

于 2012-05-17T16:37:27.793 に答える
0

アプリを閉じる問題に対する私のお気に入りの解決策は次のとおりです。

  • 特定のイベントが発生したときに閉じたいアクティビティには、「startActivityForResult」の使用を検討してください。
  • いくつかのインテント フラグを使用することもできますが、私はそれらを非常に面倒だと考えており、できるだけ使用しないようにしています。
  • アクティビティの代わりにフラグメントを使用します。どのフラグメントをいつ表示するかを正確に選択できます。
于 2012-05-17T19:49:42.397 に答える