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

버튼 클릭시 텍스트뷰에 숫자 띄우기가 안됩니다(로그캣도 있습니다)

0 추천

import android.app.Activity;
import android.graphics.Color;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.TextView;

 

public class MemoryGame extends Activity implements View.OnClickListener {

private Button btns[] = new Button[12];

private TextView MM_num = null;

private int B_num[] = new int[12]; // 버튼 12개 배열
private int M_num[] = new int[3]; // 텍스트뷰에 띄울 숫자 배열

protected void onCreate(Bundle savedInstanceState)

{
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_memorygame);

SetBinddingButtons();

TextView MM_num = (TextView) findViewById(R.id.num);

MM_num.settext(" 여기는 잘됩니다");
MM_num.setTextSize(60);

private void SetBinddingButtons()
{

for(int i = 0; i < 12; i++)
{
btns[i] = (Button)findViewById(R.id.btn1 + i);
btns[i].setVisibility(View.INVISIBLE);
btns[i].setOnClickListener(this);
btns[i].setTextSize(40);

}
}

public void InitValu()
{

MM_num.setText("ㅜㅜ");

MM_num.setText(""+1);

}

 

public void initNumberArr(int s)
{
int random, ran;
int cnt = 0;

if( s == 1)
{
while (M_num[0] == M_num[1] || M_num[0] == M_num[2] || M_num[1] == M_num[2])
{
for (int i = 0; i < 3; i++) {
random = (int) (Math.random() * 99);
M_num[i] = random ;
}

MM_num.setText("ㅜㅜ");

MM_num.setText(""+1);

MM_num.setText(" " + N_num[0] + " " + N_num[1] + " " + N_num[2]);

}
}

}

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

public void onClick(View v)
{

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

if(!B_bStart)
{
InitValu();
// M_sw.stop();
// M_sw.reset();
}

B_bStart = !B_bStart;

if(B_bStart)
{
initNumberArr(1); // 기억할 숫자 생성 M_num[]

MM_num.setText("ㅜㅜ");

MM_num.setText(""+1);

MM_num.setText(" " + N_num[0] + " " + N_num[1] + " " + N_num[2]);


initNumberArr(2); // 버튼에 들어갈 숫자 생성
for(int i=0; i<12; i++)
{
btns[i].setVisibility(View.VISIBLE);
btns[i].setText("" + B_num[i]);
}

}

}

 

파란색부분에다가 쓰면 잘됩니다

빨간색부분이 문제입니다.

텍스트뷰가 왜 안되는걸까요?...

버튼으로 만들어서하면 잘됩니다 ㅜㅜ

------------------------------------------------------------

10-01 08:05:03.652 17057-17057/dp.dpgame E/AndroidRuntime﹕ FATAL EXCEPTION: main
Process: dp.dpgame, PID: 17057
java.lang.NullPointerException: Attempt to invoke virtual method 'void android.widget.TextView.setText(java.lang.CharSequence)' on a null object reference
at dp.dpgame.MemoryGame.onClick(MemoryGame.java:210)
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)

로그캣에 파란색부분이 제가 텍스트뷰에 숫자 띄우려는 줄입니다

MM_num = MM_num.setText(" " + N_num[0] + " " + N_num[1] + " " + N_num[2]);

이거요 이거!! ㅠㅠ

로그캣을 봐도 뭔소린지 모르겠네요

도움 좀 부탁드립니다....

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

1개의 답변

0 추천

MM_num = MM_num.setText("ㅜㅜ");

이게 뭔가요...텍스트뷰 객체에 텍스트를 넣으면 주소가 들어가나요? 이런 코딩은 처음본듯

익명사용자 님이 2015년 10월 1일 답변
아 저건 여기다 쓸때 제가 잘못 쓴거네여
MM_num =
다 빼고입니다
텍스트뷰의 선언이 전역이 아니군요...온크리에이트 밖으로 빼세요
아.....................
완전 완전 감사합니다!!
...