目前我有一个调用方法的切换按钮,如果我按下它,切换按钮将被禁用,代码运行并重新启用按钮,如果我再次按下它,再次相同,回到它的原始状态. 我想改变它,这样当按钮被按住时它会改变状态并运行代码,当我放手时,它会变回来。我怎样才能做到这一点?我可以在这个方法中设置某种监听器吗,是这样的吗?所以我在这个方法中设置了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();
}
编辑:特别是我想知道如何在使用按钮的“方法版本”中执行此操作。“您可以使用 android:onClick 属性为 XML 布局中的按钮分配一个方法,而不是将 OnClickListener 应用于您的活动中的按钮”
我是否将视图投射到切换按钮并使用它?