我正在开发一个使用数组随机生成密码的应用程序。密码在 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。但是当我第二次单击该按钮时,结果是nBzcRjQPKAjzQL而不是nBzcRjQ。
3 回答

噜噜哒
TA贡献1784条经验 获得超7个赞
你为什么要在新生成的字符串后面附加旧字符串 haslohaslo = znaki[Index] + haslo;
可能这就是为什么你会得到这样的输出。您能否尝试将新生成的密码设置到文本视图中,例如 haslo = znaki[Index];
然后尝试使用在文本视图中设置文本haslo0.setText(haslo);

一只名叫tom的猫
TA贡献1906条经验 获得超3个赞
如何从 TextView 中“删除”旧文本(密码)并使用相同的按钮将其替换为新文本?
问题不在于“删除”旧文本,问题在于您必须清除列表,例如,每次用户单击Button
您清除列表时执行 : znaki.clear()
,那么它只会显示生成的新密码。
如果你看到你的输出:
第一个输出:
PKAjzQL --> 这是正确的
第二个输出:
nBzcRjQPKAjzQL --> 这是新输出+旧输出

胡子哥哥
TA贡献1825条经验 获得超6个赞
你能给出 OnClickButton 的代码吗?为什么在单击时使用不同的字符串设置相同的 TextView?
haslo0.setText(pustak);
haslo0.setText(haslo);
?
添加回答
举报
0/150
提交
取消