我正在 Android 上制作应用程序,但 EditText 和 TextViews 有问题。我有一个 EditText,用户在其中输入他的名字,用“确定”按钮保存它,然后在 3 个不同的 TextViews 中打印名称。例如,如果有 3 个用户 A、B 和 C,第一个 textview 将打印“A”,第二个 textview 将打印“B”,第三个将打印“C”。
我的问题是,如果用户输入 EditText“A”,三个 TextViews 将打印“A”,我希望如果第一个 TextView 已满,则名称保存在第二个 TextView 中,如果第一个和第二个 TextViews满,文本保存在第三个。
我的代码: 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() != " ")
但没有成功。
你能帮我吗 ?提前致谢。
编辑:
我意识到我在变量名称上犯了一些错误,对不起...
我试图根据您的解决方案对我的代码进行修改。新代码:
保存名称.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”中。如果我输入“if”而不是“else if”,则 3 个 TextView 已满。我不明白如何尊重第一个条件而不是空的?
谢谢你的帮助。