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

visible 이용해서 에러 잡히는 내용 에러 추가해서 올려볼게요

0 추천
private Button btn;

    private LinearLayout setlayout;

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

        btn = (Button)findViewById(R.id.btn_click1);
        setlayout = (LinearLayout) this.findViewById(R.id.setlayout);
    }

    public void onButton1Clicked(View v) {
        setlayout.setVisibility(View.VISIBLE);
    }

소스 코드 부분이구요

java.lang.IllegalStateException: Could not execute method for android:onClick

Caused by: java.lang.reflect.InvocationTargetException

Caused by: java.lang.NullPointerException

에러는 이런게 뜨네요
리스타트 (1,790 포인트) 님이 2016년 8월 4일 질문

1개의 답변

0 추천

setContentView에 선언된 xml은 제대로 설정되어있는게 맞나요?

xml에서 btn_click1 이란 id를 가진 버튼 위젯에 onClick을 추가 하셨나요?

 

setlayout = (LinearLayout) this.findViewById(R.id.setlayout);

여기서 this. 을 빼고해보세요.

setlayout = (LinearLayout) findViewById(R.id.setlayout);

캬옹이 (37,920 포인트) 님이 2016년 8월 4일 답변
버튼에 따로 온클릭리스너를 셋하지 않고 사용할때

xml에서 onClick에 대한걸 써주셔야하는데..

android:onClick="onButton1Clicked"

이런식으로 말이죠

그렇게 하기 싫다면

btn.setOnClickListener(New View.onClickListener(){

          public void onClick(View view){

          내용          

          }                

}); 이런식으로 onCreate내에서 해주는 방법도 있고요
...