java - 按钮单击时 setText 不更改或更新
问题描述
当用户单击 textView 中的按钮时,我试图获取随机字符,它可以工作,但是当我再次单击时,它不会更新我的 textView 中的随机字符。下面是我的代码。
char[] chars = "ABCDEFGHIJKLMNOPQRSTUVWXYZ".toCharArray();
StringBuilder sb = new StringBuilder(26);
Random random = new Random();
char c = chars[random.nextInt(chars.length)];
sb.append(c);
final String output = sb.toString();
show_random.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
letters.setText(output); //only shows one time and when I click again it's not udapting
}
});
如何在每次单击按钮时获得随机字符?
解决方案
只需在onClick()
函数内生成随机字符即可。
char[] chars = "ABCDEFGHIJKLMNOPQRSTUVWXYZ".toCharArray();
StringBuilder sb = new StringBuilder(26);
Random random = new Random();
show_random.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
char c = chars[random.nextInt(chars.length)];
sb.append(c);
final String output = sb.toString();
letters.setText(output);
}
});
如果您只想要一个字符,请执行以下操作:
show_random.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
char c = chars[random.nextInt(chars.length)];
letters.setText(Character.toString(c));
}
});
StringBuilder
如果您只想随机设置一个字符,则不需要此代码。
推荐阅读
- reactjs - 无法将 React 16 应用程序部署到 Firebase 托管
- python - 重新启动服务员服务
- android - 找不到参数 Gradle 的方法 classpath()
- angular - 在模块中使用 forRoot() 方法时,我们是否也必须声明 forChild() 静态方法?
- minizinc - MiniZinc 没有找到调度问题的解决方案
- angular - ng2-dragula setOptions 和 drop 版本问题
- java - 如果类不存在于类路径中,spring boot autoconfigure 如何工作
- c++ - DirectX 11 错误等同于 DirectX 9
- xamarin.forms - Xamarin 窗体 AndroidMainfest
- html - 更改ioslides封面中字幕的字体颜色