在viewpager和EditText验证中滑动

时间:2014-06-29 13:39:59

标签: android android-viewpager

我正在开发一个应用程序,用户可以在edittexts中输入内容并通过滑动屏幕进入下一个视图。滑动内容由viewpager处理。

我想做的是以下内容:

用户应该只能在填写完所有edittexts时滑动。目前我的所有edittex都有一个TextWatcher,一旦填充每个字段,它就会将布尔值设置为“true”。如果是,我可以启用viewpager,如果不是,我可以禁用它。

缺少的是,如果字段为空,则用户不会收到反馈,视图根本不会滑动,但用户可能不知道原因。我需要的是显示一个textmessage,如果他试图刷页面,说明至少有一个edittext仍然是空的。

我想过将viewpager添加到手势检测器 - 这是个好主意吗?如果是,我将如何以最佳方式实施?

1 个答案:

答案 0 :(得分:2)

您可以通过显示第一个不完整的字段来通知用户。已有一个很好的方法:EditText.setError()

editText.setError("Field is required");
editText.requestFocus();

如果要检测滑动发生的时间,可以使用ViewPager.OnPageChangeListener回调接口:

abstract void    onPageScrollStateChanged(int state)
// Called when the scroll state changes.
abstract void    onPageScrolled(int position, float positionOffset, int positionOffsetPixels)
// This method will be invoked when the current page is scrolled, either as part of a    
// programmatically initiated smooth scroll or a user initiated touch scroll.
abstract void    onPageSelected(int position)
// This method will be invoked when a new page becomes selected.

方法onPageScrolled应该是你所追求的。