VBCSCompiler.exe
有
Android
并且在其<Button android:onClick="@{handler.someButtonClick()}"/>
中,它的听众会有些像:
Handler class
我想为public View.OnClickListener someButtonClick() {
return new View.OnClickListener() {
@Override
public void onClick(View view) {
}
};
}
实施OnTouchListener
我可以知道按下按钮时以及何时释放按钮
像:
Button
有没有办法完成这项任务。
答案 0 :(得分:4)
以下是您可以使用的解决方法。
@BindingAdapter("touchListener")
public void setTouchListener(View self,boolean value){
self.setOnTouchListener(new View.OnTouchListener() {
@Override
public boolean onTouch(View view, MotionEvent event) {
// Check if the button is PRESSED
if (event.getAction() == MotionEvent.ACTION_DOWN){
//do some thing
}// Check if the button is RELEASED
else if (event.getAction() == MotionEvent.ACTION_UP) {
//do some thing
}
return false;
}
});
}
然后在xml中
<Button app:touchListener="@{true}"}"/>
答案 1 :(得分:2)
ViewModel
namespace someNamespace
{
public delegate void TrackingEventHandler(Object sender, TrackingEventArgs e);
internal Class BaseClass{ }
internal Class DerivedClass : BaseClass, InterfaceClass
{
public event TrackingEventHandler NewTrackingEventObservations;
}
}
数据绑定
public class RecyclerViewModel {
public View.OnTouchListener onTouchListener;
public void setOnTouchListener( View.OnTouchListener onTouchListener) {
this.onTouchListener = onTouchListener;
}
}
在xml中使用
@BindingAdapter("onTouchListener")
public static void setOnTouchListener(View view, View.OnTouchListener onTouchListener) {
if (onTouchListener != null)
view.setOnTouchListener(onTouchListener);
}