首页 > 解决方案 > 如何使用按钮覆盖 TextView 中的文本?

问题描述

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

标签: javaandroid

解决方案


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

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

如果你看到你的输出:

第一个输出:

PKAjzQL --> 这是正确的

第二个输出:

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


推荐阅读