クリック可能なカスタム TextView があります。クリックに基づいて外観を変更するために、独自の onClick ハンドラーを定義します。ただし、クリックされたボタンに基づいて何かを行うために、アクティビティで 2 番目の onClick ハンドラーを定義すると、onClick 関数の 1 つだけが呼び出されます。onClick は void 関数です。このクリックを処理しなかったと言う方法はありますか? 他の onClick ハンドラに渡してください。
より明確にするために、コードは次のとおりです。
TextView を拡張する MyCheckButton の内部には、次のものがあります。
setOnClickListener( mClickListener );
private OnClickListener mClickListener = new OnClickListener() {
public void onClick(View v) {
toggle();
}
};
ただし、MyCheckButton をアクティビティに含めます。もちろん、クリックされたときに何かを実行する必要があるため、別の OnClickListener をアタッチします。
MyCheckButton button= (MyCheckButtonButton) findViewById(R.id.cb);
button.setOnClickListener(new OnClickListener(){
@Override
public void onClick(View v) {
// do something in the app
}
});
setOnClickListener を 2 回呼び出すと、元のリスナーを置き換えているように見えるため、外観を変更する toggle() は呼び出されません。既に onClick ハンドラーを使用して外観を変更している場合、このボタンがクリックされたときにアクティビティで何かを行うにはどうすればよいですか? 両方の OnClickListeners が呼び出されるのを見るだけだと思いました。