Android でアプリケーションを作成していますが、EditText と TextViews に問題があります。ユーザーが自分の名前を入力し、「OK」ボタンで保存すると、名前が3つの異なるTextViewに出力されるEditTextがあります。たとえば、A、B、C の 3 人のユーザーがいる場合、1 番目の textview は「A」を出力し、2 番目の textview は「B」を出力し、3 番目の textview は「C」を出力します。
私の問題は、ユーザーが EditText "A" を入力すると、3 つの TextView が "A" を出力し、最初の TextView がいっぱいの場合、名前が 2 番目の TextView に保存され、1 番目と 2 番目の TextView がfull の場合、テキストは 3 番目のテキストに保存されます。
私のコード: saveName.class
EditText name = (EditText) findViewById(R.id.name);
SharedPreferences settings = getSharedPreferences("MemberInfo",
0);
SharedPreferences.Editor editor = settings.edit();
editor.putString("Nom", nomrepete.getText().toString());
editor.commit();
printName.class
TextView name1 = (TextView) findViewById(R.id.savedname);
TextView name2 = (TextView) findViewById(R.id.savedname2);
TextView name3 = (TextView) findViewById(R.id.savedname3);
SharedPreferences settings = getSharedPreferences("MemberInfo", 0);
name1.setText(settings.getString("Nom", "").toString());
nomsauve2.setText(settings.getString("Nom", "").toString());
nomsauve3.setText(settings.getString("Nom", "").toString());
if のような条件をいくつか入れようとしまし
(name1.getText().toString() != " " && name2.getText().toString() != " ")
たが、成功しませんでした。
私を助けてくれませんか?前もって感謝します。
編集:
変数の名前にいくつかの間違いがあることに気付きました。申し訳ありません...
あなたの解決策に従って、コードを変更しようとしました。新しいコード:
saveName.class
EditText nomrepete = (EditText) findViewById(R.id.nomrepete);
nomrepete.setVisibility(View.VISIBLE);
SharedPreferences settings = getSharedPreferences("MembreInfo",
0);
SharedPreferences.Editor editor = settings.edit();
editor.putString("Nom1", nomrepete.getText().toString());
editor.putString("Nom2", nomrepete.getText().toString());
editor.putString("Nom3", nomrepete.getText().toString());
editor.commit();
printName.class
TextView nomsauve1 = (TextView) findViewById(R.id.savename);
TextView nomsauve2 = (TextView) findViewById(R.id.savename2);
TextView nomsauve3 = (TextView) findViewById(R.id.savename3);
SharedPreferences settings = getSharedPreferences("MembreInfo", 0);
if (nomsauve1.getText().toString().equals("")) {
nomsauve1.setText(settings.getString("Nom1", "").toString());
System.out.println("user1");
}
else if (!nomsauve1.getText().toString().equals("")) {
nomsauve2.setText(settings.getString("Nom2", "").toString());
System.out.println("user2");
}
else if (!nomsauve1.getText().toString().equals("")
&& !nomsauve2.getText().toString().equals("")) {
nomsauve3.setText(settings.getString("Nom3", "").toString());
System.out.println("user3");
}
ただし、名前を保存すると、常に最初の TextView "nomsauve1" に保存されます。「else if」の代わりに「if」を入れると、3 つの TextView がいっぱいになります。最初の条件が空ではないのに、どのように尊重されるのかわかりませんか?
ご協力いただきありがとうございます。