java - 如何使用按钮覆盖 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。
解决方案
如何从 TextView 中“删除”旧文本(密码)并使用相同的按钮将其替换为新文本?
问题不在于“删除”旧文本,问题在于您必须清除列表,例如,每次用户单击Button
您清除列表时执行 : znaki.clear()
,那么它只会显示生成的新密码。
如果你看到你的输出:
第一个输出:
PKAjzQL --> 这是正确的
第二个输出:
nBzcRjQPKAjzQL --> 这是新输出+旧输出
推荐阅读
- javascript - 如何遍历Object然后得到IndexOf字符串,例如A,B..然后如果A = 1,b = 2则转换为值
- c# - RadCombobox SelectedValue 为 Null
- mysql - MySQL 根据列值的优先级进行选择
- android - 最后带有固定字符的可编辑文本
- airflow - Apache Airflow 忽略失败的任务
- ffmpeg - FFmpeg - 缓冲区队列溢出,丢弃 - 组合 2 个视频并使用 concat、hstack 和 trim 时
- microsoft-graph-api - Graph Explorer 似乎不支持 EDU 端点
- python - pandas.read_csv 在导入时更改值
- python - Python:拆分未知长度的输入并创建一个数组
- ms-access - 访问 VBA - 如果记录不存在,则插入到另一个表