마스터Q&A 안드로이드는 안드로이드 개발자들의 질문과 답변을 위한 지식 커뮤니티 사이트입니다. 안드로이드펍에서 운영하고 있습니다. [사용법, 운영진]

버튼을 누를때마다 랜덤한 글자를 TextView에 띄우기

0 추천

button을 누를때 한번 랜덤으로 textView에 A~D중 한가지가 뜨지만 두번째 누를 때부터 만약 A가 떴다면 계속 button을 눌러도 textView에 A가 떠있는채로 바뀌지 않습니다.

button을 누를때마다 A~D가 랜덤으로 계속해서 textView에 바뀌어 띄워지려면 어떻게 고쳐야하나요?

 

Button button1;
TextView textView;

String[] text = {"A","B","C","D","E"};

int randomNum = (int)(Math.random() * text_easy.length);

@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.easyactivity);

    textView = findViewById(R.id.textView);

    button = findViewById(R.id.button_easy1);

    button.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {
            textView.setText(text[randomNum]);
        }
    });
쿠롱 (400 포인트) 님이 2022년 3월 4일 질문

1개의 답변

0 추천

님의 코드를 보면 randomNum이 한번 초기화 되고 끝이라서 버튼을 눌러도 값이 변하지 않게 되어 있어요. 랜덤 텍스트를 구하는 부분을 button의 onClickListener 안으로 옮기세요. 

public class RandomUtil {
   private static int nextInt(int endExclusive) {
         return (int)(Math.random() * endExclusive);
   }
 
   public static String randomString(String[] strings) {
       int index = nextInt(strings.length);
       return strings[index];
   }
}

button.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {
            textView.setText(getRandomText());
        }
    });


private String getRandomText() {
    return RandomUtil.randomString(text);
}

 

spark (227,510 포인트) 님이 2022년 3월 4일 답변
spark님이 2022년 3월 6일 수정
...