2010-12-22 10 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