我正在尝试使用文本(无按钮)创建一些字段,然后单击以打开datepicker对话框。 我完全是乞丐,我正在尝试简单的例子。
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尝试过,结果是一样的。 有人能帮助我吗?
提前致谢!
答案 0 :(得分:2)
改为使用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;
}
答案 1 :(得分:0)
感谢它听起来合乎逻辑,但是当我使用OnClick时,应用程序在初始化时感到沮丧。
firstbirth.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
DialogFragment dd1 = new DatePickerFragment();
dd1.show(getFragmentManager(), "Select a date");
}
});
问题不在于DialogFragment,因为它在我使用onTouch事件时起作用。 谢谢:))