1

我正在尝试使用我单击的文本(无按钮)创建一些字段以打开日期选择器对话框。我完全是初学者,我正在尝试简单的例子。

 firstbirth.setOnTouchListener(new View.OnTouchListener() {
            @Override
            public boolean onTouch(View view, MotionEvent motionEvent) {
                Toast.makeText(getApplicationContext(), "ahooj", Toast.LENGTH_LONG).show();
                return false;
            }
        });

firstbirth 是微调器,我用 Edittext 尝试过,结果是一样的。有谁能够帮我?

提前致谢!

4

2 回答 2

5

请改用 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;
}
于 2014-10-05T16:47:30.910 回答
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 事件时有效。谢谢 :)

于 2014-10-05T18:03:03.813 回答