如何验证Fragments中的EditText并防止Fragment更改?

2024-01-11

说明:

我有一个片段活动FirstRun其中包括 5碎片 with 滑动导航,第二个和第三个片段包含 2编辑文本需要用户填写,并且不需要为空或未填写。

好的,我可以使用 OnTextChanged 侦听器验证字段,但用户有可能只是滑到下一个片段。

问题 :

我的问题是,在用户在 EditText 中输入某个值之前,如何防止滑动到下一个片段?在验证用户输入之前如何防止片段创建?

例子 :除非填充了第二个片段的 EditText,否则防止滑动到第三个片段。


好吧,在模糊地徘徊了大约一周之后,我找到了一个解决方案来验证输入,同时也防止滑动。

Step 1:首先是实现一个自定义视图分页器类

import android.content.Context;
import android.support.v4.view.ViewPager;
import android.util.AttributeSet;
import android.view.MotionEvent;
import android.widget.Toast;

public class FirstRunPager extends ViewPager {

private boolean isPagingEnabled;
public Context context;
public FirstRunPager(Context context, AttributeSet attrs) {
    super(context, attrs);
    this.isPagingEnabled = true;
    this.context = context;
}

@Override
public boolean onTouchEvent(MotionEvent event) {
    if (isPagingEnabled) {
        return super.onTouchEvent(event);
    }
    Toast.makeText(context, "Please fill in the details, then swipe !",
            Toast.LENGTH_LONG).show();
    return false;
}
@Override
public boolean onInterceptTouchEvent(MotionEvent event) {
    if (isPagingEnabled) {
        return super.onInterceptTouchEvent(event);
    }

    return false;
}

public void setPagingEnabled(boolean b) {
    isPagingEnabled = b;
}
}

Step 2:所以现在我可以通过设置 is pagingenabled false 来防止滑动,同时任何触摸事件都由 Toast 响应,提示用户填写所有字段。

Step 3:片段可见后

      @Override
       public void setUserVisibleHint(boolean isVisibleToUser) {
          if (isVisibleToUser) {
              // set isPagingEnabled false here
              // validate EditText values here using Text Watcher
              // if all okay 
              // set isPagingEnabled = true
              // tell the user through a Toast, that he can swipe now.
               }
          }

这就是我现在实施验证的方式。如果我改进我的代码,我会更新它。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何验证Fragments中的EditText并防止Fragment更改? 的相关文章

  • Android 2.2 SDK - Droid X 相机活动无法正常完成

    我注意到我在 Droid X 上调用的默认相机活动与我的 Droid 和 Nexus One 上的默认相机活动看起来不同 在 Droid 和 Nexus One 上选择 确定 后 活动将完成 Droid X 有一个 完成 按钮 它将带您返回
  • 对话框上的 EditText 不返回任何文本

    我太累了 找不到错误 我没有发现任何错误 但我没有从 editText 收到任何文本 请看下面的代码 活动密码 xml
  • 使用 android AudioTrack 在左或右扬声器中播放声音

    我正在应用程序中的 AudioTrack 的帮助下播放声音 但我想在特定扬声器 耳朵中播放声音 即左扬声器或右扬声器或两个扬声器 以下代码是我用来播放声音的 private AudioTrack generateTone double fr
  • 安卓无法玩ogg

    有人知道这是什么意思吗 ogg使用phonegap is Media播放 它使用MediaPlayer 05 26 15 41 50 007 1160 3631 E AudioFlinger no more track names avai
  • Android 自定义视图不能以正确的方式处理透明度/alpha

    我正在绘制自定义视图 在此视图中 我使用两个不同的绘画和路径对象在画布上绘画 我基本上是在绘制两个重叠的形状 添加 Alpha 后 视图中重叠的部分比图像的其余部分更暗 这是不希望的 但我不知道如何解决它 这是我的代码片段 用于展示我如何在
  • 如何获取.so文件的依赖项列表?

    假设我有libFoo so为 android arm 编译 我不确定它链接到什么STL实现 有options http developer android com intl ru ndk guides standalone toolchai
  • Android 应用被 Google Play 拒绝

    我最近向 Google Play 商店提交了一个 Android 应用程序 但收到一条消息说我的应用程序已被拒绝 我不确定问题是什么 也找不到确切的解决方案 拒绝原因 违反了禁止行为条款 内容政策 经过定期审核后 我们确定您的应用程序支持
  • 如何以编程方式断开拨出呼叫

    我使用以下代码以编程方式断开呼叫 但它不起作用 private void callDisconnect try TelephonyManager manager TelephonyManager this getSystemService
  • Android Studio更新到1.5后Gradle错误

    今天我已将 Android Studio 更新到 v1 5 我的 libgdx 项目在这次更新之前运行良好 现在我收到此错误消息 Error Unable to load class org gradle mvn3 org sonatype
  • 如何强制从本机代码打开 Android 软键盘?

    我有一个游戏 当用户触摸屏幕时 它使用从 C 到 Java 的回调来强制打开软键盘 Java代码很简单是这样的 this inputMethodManager toggleSoftInput InputMethodManager SHOW
  • 如何防止布局的方向改变,而不是整个屏幕/活动的方向改变

    我需要一个子布局 可以是任何布局 例如FrameLayout or RelativeLayout 忽略方向变化并始终保持横向 但不是它的父级或任何其他兄弟布局 视图 它们应该相应地改变它们的方向 因此 我不能使用setRequestedOr
  • 如何使用 Firebase UI 在 recyclerView 中显示时从 Firebase 数据库中的子级引用父级

    我目前正在引用 quote text 子项 这些数据显示在recyclerview using firebase用户界面 我想获取 quote text 的父名称 如何获取 quote text 孩子的父母姓名 When user clic
  • Firebase ANR - 甚至不使用 firebase

    随着 GMS 的最新更新 引入了新的 ANR 如果您退出应用程序 然后返回 则 ANR 就会初始化 线程跟踪似乎指向 Firebase 但我什至从未开始使用 Firebase 我猜它一定是新的 GMS 包的一部分 06 11 00 34 0
  • Android - 如何更改 TimePicker 中的文本颜色?

    我正在使用 TimePicker 到 LinearLayout 中 背景颜色 黑色 但是 我看不到 TimePicker 中的数字 并且我需要在布局中将背景颜色设置为黑色 如何更改 TimePicker 中的 textColor 我已经尝试
  • 在为 Android 实现 Google 登录时,任务“:app:transformClassesWithDexForDebug”执行失败

    我正在尝试为 Android 实现 Google 登录 并且我正在按照以下说明进行操作 https developers google com identity sign in android start integrating https
  • 在Android Studio中更改项目主题?

    我使用浅色主题创建了一些项目 现在我想将其更改为深色 但我不知道该怎么做 顺便说一句 我不是问如何在代码中做到这一点 只是问如何更改项目的默认主题 在 AndroidManifest xml 的 application 标签下 您可以设置您
  • onBackPressed 隐藏 不破坏 Activity

    我知道如何取消后退按键 以便活动 主窗口保持可见 public void onBackPressed return 我的目标是隐藏该活动 但是 在没有完成它的情况下 您如何在 onBackPressed 事件中做到这一点 即我想达到 onP
  • 将图像添加到自定义 AlertDialog

    我制作了一个 AlertDialog 让用户可以从我显示的 4 个选项中选择一个 前 3 个让他们在单击号码时直接拨打号码 第 4 个显示不同的视图 现在看起来是这样的 由于第四个选项的目的是不同的任务 我想让它看起来不同 因为用户可能会感
  • Android - 9 补丁

    我正在尝试使用 9 块图片创建一个新的微调器背景 我尝试了很多方法来获得完美的图像 但都失败了 s Here is my 9 patch 当我用Draw 9 patch模拟时 内容看起来不错 但是带有箭头的部分没有显示 或者当它显示时 这部
  • FCM onMessageReceived 应用程序运行时返回空白消息和标题

    正如您在标题中所写 当应用程序关闭时 它运行良好 并且onMessageReceived获取消息正文和标题 但如果应用程序处于前台模式 运行模式 则可以发送通知 但没有消息和标题 请问该怎么办 代码 Override public void

随机推荐

  • 不单击所有选项卡并且不循环一次问题

    I am trying to click the tabs on the webpage as seen below Unfortunately it only seems to click some of the tabs despite
  • 基于包含子查询的查询的 ms-access 交叉表查询

    我在基于包含子查询的查询的交叉表查询时遇到问题 查询本身工作正常 但是当我在交叉表查询中使用它时 我收到一条与无法识别的字段名称相关的错误消息 并指向子查询中使用的字段 奇怪的是 我可以毫无问题地在此查询上定义数据透视表或数据透视图 所以
  • Chrome 扩展 - 获取当前选项卡的全部文本内容

    我正在开发一个扩展 我需要获取当前选项卡上的整个文本内容 现在我有一个插件可以从当前选项卡中检索选定的文本 所以 本质上我正在寻找它的 ctrl A 版本 这就是我到目前为止根据 Derek 的提示所做的事情 这是在我的事件处理程序中 这只
  • 当 python2.7 运行良好时,python 3.3 出现缩进错误

    我在下面编写了这个脚本 它将数字转换为其拼写 no raw input Enter a number strcheck str no try val int no except ValueError print sayi degil rai
  • Visual Studio 2010 中的 global.asax.cs 在哪里

    我安装的模板中不再有全局应用程序类代码隐藏 我只有 Global asax 我发现与全局 asax cs 为什么我再也看不到它了 如何重新创建Global asax cs 这是因为您创建的是网站而不是 Web 应用程序 我建议您使用预编译的
  • Kotlin 脚本文件中仅部分语法突出显示

    我在 Android Studio 中打开了一个文件夹 其中包含一个 Kotlin 脚本文件 kts 我在项目结构中配置了 JDK 作为 SDK 但我没有添加 gradle 文件 并且作为 Kotlin 脚本运行该文件工作正常 然而 语法突
  • PHP:尝试让 fgets() 在 CRLF、CR 和 LF 上触发

    我正在使用 proc open 和 fgets stdout 读取 PHP 中的流 尝试获取传入的每一行 许多 Linux 程序 包管理器 wget rsync 仅使用 CR 回车 字符来表示定期 就地 更新的行 例如下载进度 我希望在这些
  • MVC ValidateAntiForgeryToken 多选项卡问题

    我们收到 未提供所需的防伪令牌或该令牌无效 的信息 错误 并且经过一些进一步的调查 我成功地以最简单的形式重新创建了问题 我要么做了完全错误的事情 要么这是防伪令牌系统的限制 不管怎样 我会很感激一些建议 空 MVC 2 项目 一个视图页面
  • 如何在 gemspec 中指定最低 Ruby 版本?

    我正在为新版本的 gem 编写 gemspec 现在需要 Ruby 1 9 以前版本的 gem 可以在 Ruby 1 8 上使用 但现在需要 1 9 有没有办法让这个版本的 gem 安装失败 并为尝试在 Ruby 1 8 上安装它的用户发出
  • /dev/mem 和 /dev/kmem 不存在?

    如果有人能解释一下为什么这两个文件不存在 我将不胜感激 如果没有这两个文件 Android内核的虚拟内存空间和物理空间会是什么样子 Edit I am having Android 2 3 7 Cyanogen mod the 2 file
  • 如何复制整个目录结构?

    我正在将 10 000 个文件从一个目录复制到另一个目录 两个目录结构都有相同的文件 但是 尺寸可能会有所不同 如何强制覆盖不同大小的文件而不复制相同大小的文件 到目前为止我有这个 source D Test1 destination D
  • 是否可以在 Hibernate / JPA 中动态定义列名?

    因此 我有一个现有的数据库模式 其中包含许多我想使用 JPA Hibernate 进行建模的表 每个 表具有同一组 30 个附加列 以允许运行时扩展字段数量 记录 CREATE TABLE XX ID VARCHAR2 100 BYTE N
  • 使用 ui-router 时控制器可以从父控制器继承范围吗

    我有以下内容 var admin name admin url admin views nav sub templateUrl Content app admin partials nav sub html controller funct
  • 如果一个表单字段有多个验证器,如何让play一一验证它们,而不是全部验证?

    我看到了一个登录表单 有一个name输入有许多验证器 object Users extends Controller val loginForm Form tuple name gt nonEmptyText 1 verifying Its
  • 是否可以查看对 Firebase 数据库所做的更改日志?

    我的一个 Firebase 对象被删除了 我试图弄清楚这种情况是什么时候发生的 Firebase 是否有日志显示更改发生的时间 有些人说这存在于 Analytics 中 但我无法找到它 提前致谢 火力战士在这里 没有可公开访问的日志来记录对
  • C ++ 提升绑定性能

    绑定函数 使用 Boost Bind 时是否会对性能产生任何影响 正面或负面 也许 也许不是 这取决于 的结果std bind 或者也boost bind 是所谓的 绑定表达式 它具有由实现确定的不可知类型 这种类型是一个Callable
  • 将一些 WooCommerce 产品数据传递到 Contact Form 7 查询表

    After 当 WooCommerce 中所选变体缺货时显示表单 https stackoverflow com questions 66405033 display a form when the selected variation i
  • 使用来自 URL 的 HTML 中的 .svg 文件?

    我正在尝试在我的 html 中使用来自外部源的 svg 假设我有这个 svg https upload wikimedia org wikipedia commons 0 09 America Online logo svg https u
  • 功能组件嵌套与 props

    我对 React 还很陌生 我有一个关于架构和设计模式的问题 我已经完成了我的第一个项目 交互式图灵机测序仪 http reactiveturing herokuapp com 如果有人感兴趣的话 我发现自己经常声明嵌套函数 例如 func
  • 如何验证Fragments中的EditText并防止Fragment更改?

    说明 我有一个片段活动FirstRun其中包括 5碎片 with 滑动导航 第二个和第三个片段包含 2编辑文本需要用户填写 并且不需要为空或未填写 好的 我可以使用 OnTextChanged 侦听器验证字段 但用户有可能只是滑到下一个片段