0

ユーザーがログインしたときに、別のアクティビティから 2 つの文字列を保存しているので、別のときに使用するためにデータを保存できます (エンド ユーザーの使いやすさ)。とにかく、コードをセットアップして実行しましたが、文字列は渡されません。確実に sharedPreferences が機能していることを確認するために、トーストをセットアップして、それが私が帰属させた情報と一致するかどうかを確認しました。

1 クラス:

uname = (EditText) findViewById(R.id.txt_username);
        String username = uname.getText().toString();

        pword = (EditText) findViewById(R.id.txt_password);
        String password = pword.getText().toString();

        SharedPreferences settings = getSharedPreferences(PREFS_NAME, 0);
        SharedPreferences.Editor editor = settings.edit();
        editor.putString("key1", username);
        editor.putString("key2", password);
        editor.commit();

2級:

private void Test() {
        // TODO Auto-generated method stub
        SharedPreferences settings = getSharedPreferences(PREFS_NAME, 0);
        String username = settings.getString("key1", null);
        String password = settings.getString("key2", null);
         if(username.equals("irock97")) {
            Toast.makeText(getApplicationContext(), "yaya", Toast.LENGTH_SHORT).show();
        } else {
            Toast.makeText(getApplicationContext(), "fail", Toast.LENGTH_SHORT).show();
        }
}
4

3 に答える 3

1

それ以外の :

if(username =="irock97")

使用する:

if(username.equals("irock97"))

String等しいかどうかをテストします。==オブジェクト参照の等価性をテストしています。

于 2012-04-07T16:19:21.287 に答える
1

交換:

username == "irock97"

と:

username.equals("irock97")

==2 つの文字列参照がメモリ内の同じオブジェクトを参照しているかどうかを確認するために使用されます。

equals()2 つの文字列参照が同じオブジェクトを参照しているか、同じ文字列値を持つ 2 つの異なるオブジェクトを参照しているかを確認するために使用されます。

nullそれに加えて、文字列参照が最初ではないかどうかを確認する必要があります。

if(username != null && username.equals("irock97"))

編集:

show()また、 Toast を表示するメソッドを呼び出すのを忘れていました。

Toast.makeText(getApplicationContext(), "yaya", Toast.LENGTH_SHORT).show();
于 2012-04-07T16:20:03.423 に答える
1

覚えて:

== 参照の等価性をテストします。

equals 値が等しいかどうかのテスト。

だから変わる

if(username =="irock97")

そして使用:

if(username.equals("irock97")) 

ただし、ヌルには注意してください。

「==」はヌル文字列を適切に処理しますが、ヌル文字列から「.equals」を呼び出すと例外が発生します。

String s1 = null;
String s2 = null;

s1 == s2; // ok, it's true
s1.equals(s2); // throws an exception !

編集:電話する必要がありますshow()

Toast.makeText(getApplicationContext(), "yaya", Toast.LENGTH_SHORT).show();
于 2012-04-07T16:20:07.543 に答える