2010-12-22 8 views
0

다음 코드는 시작할 때 내 응용 프로그램을 크래시합니다. 잘 컴파일되지만 충돌 만 발생합니다. 이 코드가 없으면 완벽하게 실행됩니다. OnClickListener 크래시 응용 프로그램

코드

private OnClickListener listentest = new OnClickListener() { 
    public void onClick(View v) { 
     // do something when the button is clicked 
    } 
}; 

    public void onCreate(Bundle savedInstanceState) { 
    Button teamsbtn = (Button)findViewById(R.id.teams); 
    // teamsbtn.setOnClickListener(listentest); 
    } 

감사합니다, 앤드류

+0

충돌에서 전체 스택 추적을 게시하십시오. logcat을 사용하십시오. –

답변

1

흥미 롭다. OnClickListener가 부모 클래스와 관련하여 전반적인 앱 수명주기에서 생성되는 "언제"와 관련이있을 수 있습니다. 나는 이것을 개인적으로 시도하지 않았다.

대신에 onCreate에서 인스턴스화하는 클래스를 만들면 어떻게 될까요?

public void onCreate(Bundle savedInstanceState) { 
    listentest = new MyOnClickListener(); 

    Button teamsbtn = (Button)findViewById(R.id.teams); 

    teamsbtn.setOnClickListener(listentest); 
} 



private class MyOnClickListener implements OnClickListener { 
    public void onClick(View v) { 
     // do something when the button is clicked 
    } 
}; 
+0

고마워 지금은 – Andrew

+0

아무 문제 없어, 재미있게 보내세요! – Derrick

+0

3 년 늦었지 만 'private MyOnClickListener'가'Private class MyOnClickListener'가되어서는 안됩니까? – twiz

관련 문제