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

안드로이드 버튼 이벤트 질문입니다. 로그캣도 올렸어요

0 추천

    public void onClick(View v)
    {

        if(v == B_start) {       // 시작버튼 클릭
            B_start.setVisibility(View.INVISIBLE);

        if (!B_bStart) {
            InitValu();
        }

            B_bStart = !B_bStart;
   
            if(B_bStart)
            {
                initNumberArr(1);           // 기억할 숫자 생성
                T_num.setText("    " + M_num[0] + "    " + M_num[1] + "    " + M_num[2]);
                T_num.setVisibility(View.VISIBLE);
                T_num.setTextSize(50);
   
                initNumberArr(2);           // 버튼에 들어갈 숫자 생성

            for (int i = 0; i < 12; i++) {
                btns[i].setVisibility(View.VISIBLE);
                btns[i].setText("" + B_num[i]);
            }

            CK_num[0] = Integer.parseInt(((Button) v).getText().toString());

ㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡ

10-01 12:00:40.226    8096-8096/? E/AndroidRuntime﹕ FATAL EXCEPTION: main
    Process: dp.dpgame, PID: 8096
    java.lang.NumberFormatException: Invalid int: "게임시작"
            at java.lang.Integer.invalidInt(Integer.java:138)
            at java.lang.Integer.parse(Integer.java:410)
            at java.lang.Integer.parseInt(Integer.java:367)
            at java.lang.Integer.parseInt(Integer.java:334)
            at dp.dpgame.MemoryGame.onClick(MemoryGame.java:238)
            at android.view.View.performClick(View.java:5242)
            at android.widget.TextView.performClick(TextView.java:10530)
            at android.view.View$PerformClick.run(View.java:21185)
            at android.os.Handler.handleCallback(Handler.java:739)
            at android.os.Handler.dispatchMessage(Handler.java:95)
            at android.os.Looper.loop(Looper.java:145)
            at android.app.ActivityThread.main(ActivityThread.java:6872)
            at java.lang.reflect.Method.invoke(Native Method)
            at java.lang.reflect.Method.invoke(Method.java:372)
            at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1404)
            at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1199)

238번째줄이

int value = Integer.parseInt(((Button) v).gettext().toString()); 입니다.

 

시작버튼 누르면 랜덤숫자 3개 생성해서 텍스트뷰에 띄우고

setVisibility로 숨겨놨던 버튼 12개가 나타나면서  랜덤숫자+ M_num[]값 3개가 들어가는건데여

CK_num[0] = Integer.parseInt(((Button) v).getText().toString());

이 부분에서 멈추네요 이게 238번째 줄입니다.

이거 없애면 버튼에 값은 잘 뜹니다

처음에 시작버튼을 누르면 숨어있던 버튼 12개가 나오면서 각각 숫자를 가지고 있거든여

저것만 지우면 버튼 12개 나타나면서 숫자 뜨는거까지는 잘 됩니다.

 

그리고 시작버튼 클릭 제외하고 20번 반복하려면

 if (!B_bStart) {
InitValu();
}

이거부터 while문에 넣으면 되겠죠?

깜둥이곰 (290 포인트) 님이 2015년 10월 1일 질문
깜둥이곰님이 2015년 10월 1일 수정

2개의 답변

0 추천
리스너 설정을 제대로 안했을 수도 있고 참조를 잘못했을 수도 있고 원인은 많습니다.

로그캣을 올려주세요.
코딩하시는 분들은 탐정이 아니에요.
Jinthree (8,980 포인트) 님이 2015년 10월 1일 답변
로그캣 올렸습니다. ㅜㅜ
0 추천

로그캣에서 다 알려주고있네요

java.lang.NumberFormatException: Invalid int: "게임시작"

238줄에서 parsInt하는데 값이 게임시작으로 들어가니 에러가 나는듯 합니다

bangbang (8,820 포인트) 님이 2015년 10월 1일 답변
아.. 시작버튼 누른뒤에 생기는 버튼들 눌러도 값은 그대로인거네요.. ㅠㅠ
...