繁体   English   中英

如何使用按钮覆盖TextView中的文本?

[英]How to overwrite a text in TextView using a button?

我正在开发一个使用数组随机生成密码的应用程序。 密码在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

如何使用相同的按钮从TextView中“删除”旧文本(密码)并将其替换为新文本?

问题不是要“删除”旧文本,而是您必须清除列表,例如,每次用户单击Button您要执行以下znaki.clear()清除列表: znaki.clear() ,那么它只会显示生成新密码。

如果看到输出:

第一输出:

PKAjzQL->这是正确的

第二输出:

nBzcRjQPKAjzQL->这是新的输出+旧的输出

您可以提供OnClickButton的代码吗? 为什么单击时设置带有不同字符串的相同TextView?

 haslo0.setText(pustak);
 haslo0.setText(haslo);

为什么要在haslo = znaki[Index] + haslo;在新生成的字符串后面附加旧字符串haslo = znaki[Index] + haslo; 也许这就是为什么要得到这样的输出。 您能尝试只将新生成的密码设置为haslo = znaki[Index];例如haslo = znaki[Index];

然后尝试使用haslo0.setText(haslo);在文本视图中设置文本haslo0.setText(haslo);

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM