简体   繁体   English

单击按钮时 setText 不会更改或更新

[英]setText not changing or updating when button click

I am trying to get random character when the user clicks in button in textView, it works but when I click again it's not updating the random character in my textView.当用户单击 textView 中的按钮时,我试图获取随机字符,它可以工作,但是当我再次单击时,它不会更新我的 textView 中的随机字符。 Below is my code.下面是我的代码。

 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
        }
    });

How do I get random character in every button click?如何在每次单击按钮时获得随机字符?

Just place generation of a random character inside the onClick() function.只需在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); 
    }
});

If you want just a single character then do next:如果您只想要一个字符,请执行以下操作:

    show_random.setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View v) {
        char c = chars[random.nextInt(chars.length)];
        letters.setText(Character.toString(c)); 
    }
});

You don't need StringBuilder in this code if you just want to randomly set one character.如果您只想随机设置一个字符,则在此代码中不需要StringBuilder

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

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