2011-10-25 3 views
0

스크립트를 실행하려고하면 logcat에서 다음과 같은 오류가 표시됩니다. 나는 그것을 비교했고 그것은 onClickListener 다. 이 문제를 해결하기위한 제안 사항이 있습니까? 아직도 초보자.로그캣 오류 onclicklistener android

답변

2

이 문제는 여기에 존재합니다

View splashscreen = (View) findViewById(R.layout.splash); 
splashscreen.setOnClickListener(this); 

당신은 splashscreen가 null이기 때문에 예외를 받고, 그리고 허용되지 않는 널 포인터에 setOnClickListener()을 요구하고있다. 포인터가 null 인 이유는 올바른 ID를 사용하여 XML에서 뷰에 대한 참조를 얻어야하기 때문입니다. res/layout에있는 파일 splash.xml이 작업의 콘텐츠보기로로드되고 있지만 특정보기에 적절한 R.id 값이 있어야합니다.

splash.xml에서이 용도로 선언 한보기는 XML 선언에 android:id="@+id/something" 속성이 있어야합니다 (나는 "무언가"를 공중에서 가져 왔으며 원하는대로이 식별자를 사용할 수 있습니다). 그런 다음 부를 것이다 :

//Hint: You don't have to cast the result if the pointer is a plain vanilla View 
View splashscreen = findViewById(R.id.something); 
splashscreen.setOnClickListener(this); 

그런 다음 당신이보기 및 실패하지 않습니다 당신의 설정 방법에 대한 유효한 참조를 얻을 것이다. Devunwired 말했듯이

HTH

0

, 당신은 레이아웃과 ID에 대해 잘못 어쩌면 생각합니다.

0

예, Devunwired이 옳다 http://developer.android.com/reference/android/view/View.html를 참조하십시오. Perticular보기에 자원 ID를 지정해야합니다. 대신 레이아웃 파일 이름의 참조를 "splash.xml"로 지정합니다.

또한 레이아웃 이름과 다른 ID 이름을 만들려고합니다. 그것의 오류가 아니지만 때로는 문제가 발생하여 리소스 ID를 다른 참조로 제공 할 수 있습니다.

감사합니다. 대신 Thread를 사용

0

, 당신은 Handler을 시도 할 수 있습니다 :

Handler handler = new Handler(); 

handler.post(new Runnable(){ 
    public void run(){ 
     //TODO 
    } 
}); 

을 그건 그렇고, 더 도움이 될 것입니다 더 예외 스택 추적을 게시.