此刻我有一個切換按鈕,它調用一個方法,如果我按下它,togglebutton被禁用,代碼運行並且按鈕被重新啓用,如果我再次按下它,同樣的事情再次回到它的原始狀態。我想改變它,這樣當按鈕被按下時,它會改變狀態並運行代碼,當我放開時,它會變回。我怎樣才能做到這一點?我可以在這種方法中設置某種監聽器,它是如何完成的?所以我在這個方法中設置了clicklistener,在這個句柄上,在這裏調用了什麼按鈕,我必須給它一個名字來附加listener?動作按鈕按下和釋放
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佈局中指定一個方法」
我是否將視圖轉換爲togglebutton並使用它?
你好,謝謝你的回答,據我瞭解,有兩種方法可以引用你的按鈕,這種方法,或者給按鈕一個名字在xml中調用該方法,我想知道另一個版本,我在哪裏調用方法名稱。 – Paul
你不能使用XML屬性調用onTouch,你只能從XML調用onClick屬性(android:onClick =「nameAction」),但沒有android:onTouch =「actiontouch」 – Ezrou
哦,這太可惜了,我真的很喜歡那種方法做事。謝謝 – Paul