此刻我有一个切换按钮,它调用一个方法,如果我按下它,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