現時点では、メソッドを呼び出すトグルボタンがあります。それを押すと、トグルボタンが無効になり、コードが実行され、ボタンが再度有効になり、もう一度押すと、同じことが再び有効になり、元の状態に戻ります. これを変更して、ボタンを押したままにすると状態が変化してコードが実行され、離すと元に戻ります。これどうやってするの?このメソッドである種のリスナーを設定できますか? そこで、このメソッドで clicklistener を設定します。ボタンのハンドルで、ここで呼び出されるボタンは何ですか。リスナーをアタッチする名前を付ける必要がありますか?
public void pushtotalk3(final View view) {
//if more than one call, change this code
int callId = 0;
for (SipCallSession callInfo : callsInfo) {
callId = callInfo.getCallId();
}
final int id= callId;
final boolean on = ((ToggleButton) view).isChecked();
((ToggleButton) view).setEnabled(false);
new Thread(new Runnable() {
@Override
public void run() {
try {
if (on) {
OnDtmf(id, 17, 10);
Thread.sleep(10);
OnDtmf(id, 16, 9);
runOnUiThread(new Runnable() {
public void run() {
((ToggleButton) view).setBackgroundResource(R.drawable.btn_blue_glossy);
((ToggleButton) view).setEnabled(true);
}
});
} else {
OnDtmf(id, 18, 11);
Thread.sleep(10);
OnDtmf(id, 18, 11);
runOnUiThread(new Runnable() {
public void run() {
((ToggleButton) view).setBackgroundResource(R.drawable.btn_lightblue_glossy);
((ToggleButton) view).setEnabled(true);
}
});
}
} catch (InterruptedException e) {
Log.d(TAG, "Failed to send: " + e.getMessage());
}
}
}).start();
}
編集:特に、ボタンを使用する「メソッドバージョン」でこれを行う方法を考えています。「アクティビティのボタンに OnClickListener を適用する代わりに、android:onClick 属性を使用して、XML レイアウトのボタンにメソッドを割り当てることができます」
ビューをトグルボタンにキャストしてそれを使用しますか?