android edittext的onTouch时间被触发了3次

Android 码拜 5年前 (2016-05-13) 568次浏览
在虚拟机上挺好,放在手机上跑,每次都触发了3次,求高手指点
ed5.setOnTouchListener(new View.OnTouchListener() {
@Override
public boolean onTouch(View view, MotionEvent motionEvent) {
if (motionEvent.getAction()==MotionEvent.ACTION_UP)
{
return true;
}
else
{
Calendar mycalendar=Calendar.getInstance(Locale.CHINA);
Date mydate=new Date(); //获取当前日期Date对象
mycalendar.setTime(mydate);////为Calendar对象设置时间为当前日期
int myyear = mycalendar.get(Calendar.YEAR); //获取Calendar对象中的年
int month = mycalendar.get(Calendar.MONTH);//获取Calendar对象中的月
int day = mycalendar.get(Calendar.DAY_OF_MONTH);//获取这个月的第几天
AlertDialog.Builder builder=new AlertDialog.Builder(EmployeesActivity.this);
View v= LayoutInflater.from(EmployeesActivity.this).inflate(R.layout.exit_date_dialog, null);
final DatePicker datePicker=(DatePicker) v.findViewById(R.id.exit_date_picker);
datePicker.setCalendarViewShown(false);
datePicker.init(myyear, month, day, null);
builder.setView(v)
.setCancelable(false)
.setTitle(“请选择入职时间”)
.setPositiveButton(“确定”, new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int which) {
//日期格式
final StringBuffer sb = new StringBuffer();
sb.append(datePicker.getYear())
.append(“-“)
.append(datePicker.getMonth() + 1)
.append(“-“)
.append(datePicker.getDayOfMonth());
//                                MyToast.Alert(getActivity(), sb.toString());
ed5.setText(sb.toString());
//myRenters.setRenter_begin_time(sb.toString());
dialog.cancel();
}
})
.setNegativeButton(“取消”, null)
.show();
return true;
}
}
});
解决方案

45

一般都会有Down Move Up 的
手指不是鼠标,稍微动下,就会产生一个Move。虽然你觉得没动

5

你是edittext事件响应 为啥传的参数是view呀
再说为啥要用对话框呢  只是输入日期 提示用toastt就行了吧

CodeBye 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权 , 转载请注明android edittext的onTouch时间被触发了3次
喜欢 (0)
[1034331897@qq.com]
分享 (0)