我有一个切换按钮,当我按下它时应该运行代码,当我松开它时应该运行更多代码。然而,我第一次按下并放手时没有任何反应。每次都很好,这是为什么呢?我可以看到该方法仅在我松开按钮时第一次运行(尽管它不会触发该方法的任何 onTouch 部分),我怎样才能解决这个问题,并让它在第一次按下时工作?
public void pushtotalk3(final View view) {
((ToggleButton) view).setChecked(true);
((ToggleButton) view).setChecked(false);
view.setOnTouchListener(new OnTouchListener() {
@Override
public boolean onTouch(View v, MotionEvent event) {
//if more than one call, change this code
int callId = 0;
for (SipCallSession callInfo : callsInfo) {
callId = callInfo.getCallId();
Log.e(TAG, "" + callInfo.getCallId());
}
final int id = callId;
switch (event.getAction()) {
case MotionEvent.ACTION_DOWN: { //press
((ToggleButton) view).setBackgroundResource(R.drawable.btn_blue_glossy);
((ToggleButton) view).setChecked(true);
OnDtmf(id, 17, 10);
OnDtmf(id, 16, 9);
return true;
}
case MotionEvent.ACTION_UP: { //release
((ToggleButton) view).setBackgroundResource(R.drawable.btn_lightblue_glossy);
((ToggleButton) view).setChecked(false);
OnDtmf(id, 18, 11);
OnDtmf(id, 18, 11);
return true;
}
default: return false;
}
}
});
}
编辑:按钮的xml:
<ToggleButton
android:id="@+id/PTT_button5"
android:layout_width="0dp"
android:layout_height="fill_parent"
android:text="@string/ptt5"
android:onClick="pushtotalk5"
android:layout_weight="50"
android:textOn="Push To Talk On"
android:textOff="Push To Talk Off"
android:background="@drawable/btn_lightblue_glossy"
android:textColor="@android:color/white"
android:textSize="15sp"
/>
编辑:硬件问题,无法测试解决方案 atm。