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

자꾸 NullPoint 오류가 나요.

0 추천
public class MainActivity extends AppCompatActivity {

    int[] n1;
    String[] s1;
    TextView tv1;
    MainActivity main;

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

        n1 = new int[10];
        s1 = new String[10];
        tv1 = (TextView) findViewById(R.id.tv1);

        main = new MainActivity();

        Button btn = (Button) findViewById(R.id.pop);
        btn.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {

                    main.select1();
       
            }
        });

    }

    Handler mHandler = new Handler() {
        public void handleMessage(Message msg) {
            if (msg.what == 0) {
                for (int i = 0; i < 10; i++) {
                    tv1.append(s1[i]);
                    tv1.setTextSize(10);
                    switch (i) {
                        case 2:
                            tv1.append("\n");
                            tv1.append(s1[i] + "\n");
                            tv1.setTextColor(Color.rgb(255, 0, 0));
                            break;
                        case 4:
                            tv1.append("\n");
                            tv1.append(s1[i] + "\n");
                            tv1.setTextColor(Color.rgb(255, 0, 0));
                            break;
                        case 6:
                            tv1.append("\n");
                            tv1.append(s1[i] + "\n");
                            tv1.setTextColor(Color.rgb(255, 0, 0));
                            break;
                        case 8:
                            tv1.append("\n");
                            tv1.append(s1[i] + "\n");
                            tv1.setTextColor(Color.rgb(255, 0, 0));
                            break;
                        case 10:
                            tv1.append("\n");
                            tv1.append(s1[i] + "\n");
                            tv1.setTextColor(Color.rgb(255, 0, 0));
                            break;                        
                        default:
                            break;
                    }
                    thread.start();
                }
            }
        }
    };

    Thread thread = new Thread(new Runnable() {
        @Override
        public void run() {
            try {
                Thread.sleep(2000);
            } catch (Exception e) {
            }
        }
    });

    public void select1() {
        for (int i = 0; i < 10; i++) {
            n1[i] = (int) (Math.random() * 10) + 1;
            s1[i] = String.valueOf(n1[i]);
        }
        mHandler.sendEmptyMessage(0);
    }
}

 

오류 메시지 : java.lang.NullPointerException: Attempt to write to null array

int 와 string 배열에서 nullpoint가 생기는데 이류를 모르겠습니다.
ThisIsTheTime (220 포인트) 님이 2016년 2월 5일 질문
ThisIsTheTime님이 2016년 2월 5일 수정

2개의 답변

0 추천

main = new MainActivity();

 main.select1();

이걸 왜하는지 이해를 할수가 없네요.

MainActivity 내에서 실행할거면 그냥 select1(); 로 호출하면 되는데 main에다가 담아서 하는 이유가 따로있는건가요?

 

캬옹이 (37,920 포인트) 님이 2016년 2월 5일 답변
0 추천
main = new MainActivity(); 을 하시면 안되요.

이건 객체지향의 기본이기 때문에 코딩하시면서 객체지향에대해 이해를 많이 해보셔야될듯싶네요.

main = new MainActivity(); 지우시고

btn.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                    select1();
            }
        });
로 해보세요
기초개발자 (24,060 포인트) 님이 2016년 2월 6일 답변
...