我正在开发一个使用数组随机生成密码的应用程序。密码在TextView中。除非我想第二次生成新密码,否则一切都很好。 如何使用相同的按钮从TextView中“删除”旧文本(密码)并将其替换为新文本?
这是我正在使用的变量:
EditText dlugosc;
String haslo = "";
String pustak = "";
TextView haslo0;
这是我用来生成密码的代码:
(znaki是数组的名称)
dlugosc = findViewById(R.id.password_len);
haslo0 = findViewById(R.id.password);
String yui = dlugosc.getText().toString();
int x = Integer.parseInt(yui);
for(int i = 0; i < x; i++){
int Index = generator.nextInt(znaki.length);
haslo = znaki[Index] + haslo;
}
我已经尝试过使用if结构:
if (haslo0 != null){
haslo0.setText(pustak);
haslo0.setText(haslo);
}
else
haslo0.setText(haslo);
但这没有帮助:(
当我想在密码中包含7个字符时,第一次点击按钮,结果是正确的,例如 PKAjzQL 。但是,当我单击按钮 second 次时,结果是 nBzcRjQPKAjzQL 而不是 nBzcRjQ 。
答案 0 :(得分:1)
如何使用相同的按钮从TextView中“删除”旧文本(密码)并将其替换为新文本?
问题不是要“删除”旧文本,而是问题是您必须清除列表,例如,每次用户单击Button
时,您都会执行以下操作清除列表:znaki.clear()
,那么它只会显示生成的新密码。
如果看到输出:
第一个输出:
PKAjzQL->这是正确的
第二个输出:
nBzcRjQPKAjzQL->这是新的输出+旧的输出
答案 1 :(得分:0)
您能提供OnClickButton的代码吗?为什么单击时设置带有不同字符串的相同TextView?
haslo0.setText(pustak);
haslo0.setText(haslo);
?
答案 2 :(得分:0)
为什么要在haslo = znaki[Index] + haslo;
中新生成的字符串后面附加旧字符串haslo
也许这就是为什么要得到这样的输出。您能尝试像在文本视图中设置新生成的密码吗?
haslo = znaki[Index];
然后尝试使用haslo0.setText(haslo);