如何使用按钮覆盖 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。


慕后森
浏览 100回答 3
3回答

噜噜哒

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

一只名叫tom的猫

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

胡子哥哥

你能给出 OnClickButton 的代码吗?为什么在单击时使用不同的字符串设置相同的 TextView?&nbsp;haslo0.setText(pustak);&nbsp;haslo0.setText(haslo);?
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java