我正在尝试制作一些带有文本的字段(没有按钮),单击它可以打开日期选择器对话框。我完全是一个乞丐,我正在尝试一个简单的例子。
firstbirth.setOnTouchListener(new View.OnTouchListener() {
@Override
public boolean onTouch(View view, MotionEvent motionEvent) {
Toast.makeText(getApplicationContext(), "ahooj", Toast.LENGTH_LONG).show();
return false;
}
});
firstbirth是spinner,我在Edittext中尝试过,结果是一样的。有人能帮我吗?
提前感谢!
请改用OnClickListener。
setOnClickListener(View.OnClickListener l)
OnTouchListeners将触发多个触摸事件(如向下触摸、向上触摸等),而OnClickListener只会被触发一次(onClick:))
如果出于某种原因想要使用OnTochListener,可以确保它只调用一次。
尝试:
@Override
public boolean onTouch(View view, MotionEvent motionEvent) {
if (motionEvent.getAction() == MotionEvent.ACTION_UP { // another option would be ACTION_DOWN for example
Toast.makeText(getApplicationContext(), "ahooj", Toast.LENGTH_LONG).show();
return true;
}
return false;
}
谢谢,这听起来很合乎逻辑,但当我使用OnClick事件应用程序时,初始化时感觉很糟糕。
firstbirth.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
DialogFragment dd1 = new DatePickerFragment();
dd1.show(getFragmentManager(), "Select a date");
}
});
DialogFragment没有问题,因为当我使用onTouch事件时它可以工作。感谢:)