首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

EditText内部列表。EditText.TextChanged在滚动上给出错误的值

EditText是Android平台上的一个用户界面控件,用于接收用户输入文本的组件。内部列表指的是EditText中的文本内容,可以通过滚动来查看超出显示范围的文本。

在使用EditText控件时,可以通过设置TextChangedListener来监听文本内容的变化。其中的onTextChanged方法会在文本内容发生变化时被调用。然而,当EditText控件中的文本内容很长,需要滚动才能完全显示时,滚动操作会触发onTextChanged方法,导致错误的值被传递。

为了解决这个问题,可以在滚动操作时暂时禁用TextChangedListener,避免错误的值被传递。具体实现可以通过在滚动开始时移除TextChangedListener,在滚动结束后重新添加TextChangedListener。

以下是一个示例代码:

代码语言:txt
复制
// 创建一个TextChangedListener
TextWatcher textWatcher = new TextWatcher() {
    @Override
    public void beforeTextChanged(CharSequence s, int start, int count, int after) {
        // 在文本变化前的操作
    }

    @Override
    public void onTextChanged(CharSequence s, int start, int before, int count) {
        // 在文本变化时的操作
    }

    @Override
    public void afterTextChanged(Editable s) {
        // 在文本变化后的操作
    }
};

// 获取EditText控件
EditText editText = findViewById(R.id.editText);

// 添加TextChangedListener
editText.addTextChangedListener(textWatcher);

// 获取滚动操作的ScrollView
ScrollView scrollView = findViewById(R.id.scrollView);

// 设置滚动监听器
scrollView.setOnScrollChangeListener(new View.OnScrollChangeListener() {
    @Override
    public void onScrollChange(View v, int scrollX, int scrollY, int oldScrollX, int oldScrollY) {
        // 在滚动开始时移除TextChangedListener
        editText.removeTextChangedListener(textWatcher);
    }
});

// 在滚动结束后重新添加TextChangedListener
scrollView.setOnTouchListener(new View.OnTouchListener() {
    @Override
    public boolean onTouch(View v, MotionEvent event) {
        if (event.getAction() == MotionEvent.ACTION_UP) {
            editText.addTextChangedListener(textWatcher);
        }
        return false;
    }
});

这样,在滚动操作期间,EditText的TextChanged事件就不会被触发,避免了错误的值被传递。

关于EditText内部列表的优势和应用场景,可以根据具体的需求来确定。例如,当需要接收用户输入多行文本时,可以使用EditText控件,并通过滚动来查看超出显示范围的文本。

腾讯云提供了丰富的云计算产品和服务,其中与移动开发相关的产品包括腾讯移动分析、腾讯移动推送等。您可以通过访问腾讯云官网(https://cloud.tencent.com/)了解更多相关产品和服务的详细信息。

相关搜索:JAVA_HOME在节点上给出了错误的值在字符串列表中给出错误索引的代码无法显示级联下拉列表的值- 500 (内部服务器错误)在PHP中给出错误值的排序时间数组Kivy Button.center在页面绘制前给出了错误的值Robotframework -更新json字典中的值给出错误列表:‘AttributeError’对象没有'update‘属性我尝试在nodejs中自己验证JWT签名,以了解JWT的内部工作原理,但解密后的签名给出了错误的值Python获取列表中最大值的索引:错误值在列表中,但未找到在列表中查找相同的值并删除重复的错误输出如何找出内部列表中的最后一个值在python的嵌套列表中重复了多少次?我的kotlin代码对列表中的最大值和最小值给出了错误的答案,我不知道为什么如果输入错误但没有在列表中获得错误的值,则再次请求用户输入列表视图中的搜索筛选器在单击项目时返回错误的值内部错误:尝试在没有Tensorflow句柄数据的情况下获取变量的梯度(或类似值)如何将输入的edittext值存储在sharedpreference中,并在列表视图中的下一个活动中显示?在Visual Basic中,将字符串数组设置为组合框列表会给出参数是必需的错误在generate_series上强制转换给出:错误:在无法接受集合的上下文中调用的集值函数在flutter项目中编写ios原生快速代码时,给出类型为'FlutterViewController‘的错误值的Xcode没有成员'binaryMessenger’Retrofit2 -上传图片到服务器给出一个内部服务器错误作为在安卓工作室的响应在pandas数据帧中创建唯一值列表--错误: TypeError:'<‘在'int’和'str‘的实例之间不受支持
相关搜索:
页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

强大的提示控件TextInputLayout使用以及源码分析

,比如给hint设置的文字,mHintAnimationEnabled,hint内文字的动画是否可用,还有hintAppearance的值,mErrorTextAppearance是错误提示文字的样式,...errorEnabled是否开启错误提示 setErrorEnabled(errorEnabled); 并通过setErrorEnabled把errorEnabled的值设置给TextInputLayout...的addView方法,如果不是EditText,也调用父类的addView方法,查看setEditText方法 内部 private void setEditText(EditText editText...设置文本变化的监听,在文本改变之前,正在改变的时候都可以做相应的逻辑处理,往下看有更改EditText的Margin的方法 private LayoutParams updateEditTextMargin...,在这里我们找到了,同时这里的代码也是值得我们进行学习的,只有当用户设置错误提示为真的时候,才会new一个TextView,这样是比较省性能的,接下来是setError方法,设置错误提示的文本信息,里面是一些判断和动画的设置

1.8K50
  • 点击事件的四种写法

    比如某个列表的adapter中,构造方法需要传入某个List data, 那么以后需要进行data的非空判断么,我看到某个开源项目判断了,觉得有点多此一举。...仗剑行侠: 个人理解,应该没有区别,即便你就是通过匿名内部类实现,你的控件的是否可以用,也是取决于activity的生命周期啊。.../******************************************************/ 上一节的电话拨号器有几点可以进行优化: EditText控件可以在界面之后就进行获取,对象放在成员属性里面...,不用每次点击都获取 EditText获取到的值进行trim()去掉空格 判断号码是否为空android提供的工具类 TextUtils.isEmpty(); 提示信息Toast Toast.makeText...case R.id.bt_dail: callPhone(); break; } } 3. xml中定义onClick属性 看log错误信息的技巧找

    67130

    笔记22 | 学习整理开源APP(BaseAnimation)程序源码“中的通讯录效果(三)

    ,根据触摸的区域和字母高度的计算出position,再向联系人Listview提供一个方向输出position值!...21 | 学习整理开源APP(BaseAnimation)程序源码“中的通讯录效果(二) ---- 3.3 联系人的搜索 搜索部分难点是拿出搜索的内容,首先自定义了ClearEditText,给出了一个...textchange的监听,然后进行匹配>筛选>排序>加载到联系人列表中。...,更新为原来的列表,否则为过滤数据列表 filterData(s.toString()); } @Override...* 当我们按下的位置 在 EditText的宽度 - 图标到控件右边的间距 - 图标的宽度 和 * EditText的宽度 - 图标到控件右边的间距之间我们就算点击了图标,竖直方向没有考虑

    67440

    关于el-upload看这一篇就够了

    通过 XMLHttpRequest 可以在不刷新页面的情况下请求特定 URL,获取数据。这允许网页在不影响用户操作的情况下,更新页面的局部内容。...其支持的关键属性/方法/事件:属性/方法/事件说明upload代可以通过对其绑定事件来追踪它的进度setRequestHeader()设置 HTTP 请求头的值。...如果请求是异步的(默认),那么该方法将在请求发送后立即返回load请求成功完成时触发error当 request 遭遇错误时触发el-upload 多数 prop 是借助上述两个原生形式实现的。...before-upload,且不区分是否自动【手动上传】this.refs['upload'].submit手动上传,官方给出的方式是调用 el-upload 组件的 submit()submit()...这意味,在非自动上传场景下,验证文件基础信息(大小、类型、个数等),需要在 on-change 中处理!

    7.3K20

    【Android 应用开发】Android 数据存储 之 SQLite数据库详解

    Map集合, 键 是 列名, 值 是 要更新的数据, 这个值可以为null, 如果为null 这些数据会被清空; -- 参数③ whereClause: where选择语句, 选择那些行进行数据的更新,...//调用该方法设置事务成功, 如果没有调用该方法, 在调用endTransaction()方法的时候会回滚事务 db.setTransactionSuccessful(); } finally...SQLite的数据存储格式 支持的数据类型 : SQLite数据库 内部 只支持null,integer,real(浮点型),text(文本),blob(二进制数据) 五种数据类型; 数据类型转换 :...SQLite可以接受varchar(n), char(n), decimal(p,s) 等数据类型, 不过内部的机制使将这个数据类型转换成上面的五种数据类型进行存储; 无类型限制: SQLite允许将各种类型的数据保存到各种类型的字段中...新闻列表程序实例 1.

    2.5K10

    Android开发笔记(四十四)动态UI事件

    在翻页过程中,状态值变化依次为:正在滑动->滑动完毕->静止。 onPageScrolled : 在翻页过程中调用。...: 指定下拉列表的高度 dropDownWidth : 指定下拉列表的宽度 singleLine : 指定列表中的每个元素是否单行显示,true表示单行显示,false表示多行显示 在代码中对应的方法是...: 设置下拉列表的宽度 setSingleLine : 设置列表中的每个元素是否单行显示 示例代码主要实现了三个功能: 1、在文本框一开始获得焦点时,自动弹出历史搜索关键词下拉列表; 2、...比如弹出商品关键词列表时,往往还希望在每行后面显示该关键词对应的商品数量,从而让用户更有目的地选择合适的商品。...基于此,博主在下面又给出了基于EditText+ListView的实现方式,该方式除了在列表中显示关键词与数量外,还增加了一个叉号按钮用来立即清空文本框。

    1.1K10

    android之风格与主题(style与theme)

    在元素内部,申明一个或者多个, 每一个定义了一个名字属性,并且在元素内部定义了这个风格的值。...3.在元素内部,申明一个或者多个,每一个定义了一个名字属性,并且在元素内部定义了这个风格的值。 4.你可以应用在其他XML定义的资源。...@符号表明了我们应用的资源是前边定义过的(或者在前一个项目中或者在Android 框架中)。问号?表明了我们引用的资源的值在当前的主题当中定义过。...中应用主题: 为了在成用当中所有的Activity当中使用主题,你可以打开AndroidManifest.xml 文件,编辑标签,让其包含android:theme属性,值是一个主题的名字...我们可以修改在Theme.Dialog中定义的每个item元素的值,然后我们在Android Manifest 文件中使用CustomDialogTheme 而不是 Theme.Dialog 。

    19630

    安卓第六夜 凡高的自画像

    在主界面中再次调出数据,并显示。相关知识点包括: 启动Activity。利用Intent,启动一个新的Activity。 文本输入。增加EditText输入栏,让用户输入文本信息。 数据存储。...在提交数据后,这个Activity将通过EditText的getText()方法获取字符输入。提交的字符串将使用SharedPreferences存储起来。...SharedPreferences以键值对(key-value pair)的方式存储数据。在写入时,我们需要说明数据对应的键。在读取时,我们将根据键,来获得对应的数据值。数据可以在整个应用范围内调用。...Button用于启动上面定义的SelfEditActivity。 修改MainActivity。相对于上一讲,这里主要增加了两个功能。...使用getString()方法,从SharedPreferences对象获得键位"name"的值。如果"name"键不存在,将返回默认值"unknown"。 ?

    1.2K70

    Android开发笔记(一百四十六)仿支付宝的支付密码输入框

    当然,在界面展现上,需要以横排方格的形式加以显示。于是可以考虑,把支付密码的输入与显示操作分离开来,即密码输入操作仍由EditText处理,而密码显示操作则由自定义的方格布局接管。...对于处理密码输入的EditText来说,需要实现以下几项操作: 1、把默认的下划线背景替换为圆角背景,且支持在获得焦点时高亮显示; 2、屏蔽输入光标,可调用setCursorVisible方法设置为不可见...,把回车符('\r')替换为Unicode编码的空格('\uFEFF'),其中getOriginal表示返回需要替换的字符列表,getReplacement表示返回替换后的字符列表。...其次,对于支付密码输入框的焦点获得问题,因为该输入框内部集成了EditText,所以不管是给输入框注册点击事件还是触摸事件,手势焦点都会被内部的EditText所抢占,使得密码输入框反而不会响应点击和触摸事件...详细的事件处理机制限于篇幅不再叙述,这里直接给出具体的解决步骤: 1、重写支付密码输入框布局的onInterceptTouchEvent方法,对所有触摸事件予以拦截,不让触摸事件传递给下级视图,代码如下所示

    1.9K30

    165. 精读《数据搭建引擎 bi-designer API-组件》

    bi-designer 是阿里数据中台团队自研的前端搭建引擎,基于它开发了阿里内部最大的数据分析平台,以及阿里云上的 QuickBI。...Card 功能时,我们在两处内部可拖拽区域调用 ComponentLoader 加载一个事先定义好的容器组件 div : import { ComponentLoader, useDesigner }...,如果加载的是容器组件,就相当于增加了一块内部插槽。...运行时能力中,筛选关联功能属于 ComponentMeta.eventConfigs 中 filterFetch 部分能力 ,即筛选条件的作用范围,在列表中的组件会在当前组件触发 onFilterChange...注:需要考虑数据回滚的组件,在发布前要把 undo 逻辑写好并测试后提前上线,之后再进行项目正式上线,以保证回滚后可以正确执行 undo 。

    1.9K10

    一篇文章彻底搞懂Mysql事务相关原理

    今天想跟大家一起研究下事务内部到底是怎么实现的,在讲解前我想先抛出个问题: 事务想要做到什么效果? 按我理解,无非是要做到可靠性以及并发处理。...undo log主要记录的是数据的逻辑变化,为了在发生错误时回滚之前的操作,需要将之前的操作都记录下来,然后在发生错误时才可以回滚。 还用上面那两张表 ?...此外,删除在内部被视为更新,在该更新中,行中的特殊位被设置为将其标记为已删除。每行还包含一个7字节的 DB_ROLL_PTR字段,称为滚动指针。回滚指针指向写入回滚段的撤消日志记录。...所谓回滚操作就是当发生错误异常或者显式的执行rollback语句时需要把数据还原到原先的模样,所以这时候就需要用到undo log来进行回滚,接下来看一下undo log在实现事务原子性时怎么发挥作用的...超过200个事务的等待列表将被视为死锁,并且尝试检查等待列表的事务将回滚。如果锁定线程必须查看等待列表上的事务所拥有的1,000,000个以上的锁,也可能发生相同的错误。

    85210

    如何合理构造一个Uploader工具类(设计到实现)

    但是,想引入开源的工具时觉得增加了许多体积且定制性不满足,每次写上传逻辑又会写很多冗余性代码。在不同的toC业务上,还要重新编写自己的上传组件样式。...然后可以给出以下大概的内部接口: class Uploader { // 构造器,new的时候,合并默认配置 constructor (option = {}) {} // 根据配置初始化,...callHook,将事件挂载在实例属性上。...- loadFiles 传进来文件列表参数,判断个数响应事件,其次就是要封装出内部列表的数据格式,方便追踪状态和对应对象,这里我们要用一个外部变量生成id,再根据autoUpload参数选择是否自动上传...onerror事件:处理错误状态,改写文件列表,抛出错误,响应外部error事件 onprogress事件:根据返回的事件,计算好百分比,响应外部onprogress事件 因为xhr的返回格式不太友好,

    90410

    数据访问函数库的使用方法(二)—— 获取记录集和使用事务的方法

    可以通过字段名称来获取             DataRow dr = dal.RunSqlDataRow(sql);             //只获取第一条记录的第一个字段的值             ...str);    //添加数据             if (dal.ErrorMsg.Length > )             {                 //出现异常,函数内部会自动回滚事务...= 2 ");    //修改数据             if (dal.ErrorMsg.Length > )             {                 //出现异常,函数内部会自动回滚事务.../// 优点:在函数内部自动处理连接的打开和关闭的问题。             /// sql语句出现错误的时候,会在/log/里面建立一个文本文件,记录出错的信息。             .../// 可以通过查看这个文件,快速分析出来出错原因,在使用sql语句的情况下帮助很大。

    1K100

    Android自定义EditText:手把手教你做一款含一键删除&自定义样式的SuperEditText

    功能介绍 2.1 需求场景 对于 EditText来说,一般的需求有: 方便用户因出现输入错误而进行2次输入 标识用户正在填写项 根据具体场景增加一定的UI元素 2.2 功能需求 根据需求场景,得出EditText...注:该样式的设置是系统自带的 API 所不具备的 功能列表 ? 2.3 功能示意 ? ---- 3....特点 对比市面上EditText控件,该控件Super_EditText 的特点是: 3.1 功能实用 一键删除功能 在需求中非常常见,现将其封装后更加方便使用 可自定义样式程度高(比自带的强大 & 方便...功能详细设计 下面将给出详细的功能逻辑 4.1 一键清空输入字段 描述:将当前用户输入的字段清空 需求场景:方便用户因出现输入错误而进行2次输入 原型图 ?...、宽和高等信息 // x = 组件在容器X轴上的起点、y = 组件在容器Y轴上的起点、width=组件的长度、height = 组件的高度 // b.

    1.9K30

    Android自定义EditText:手把手教你做一款智能EditText(一键删除、自定义样式)

    功能介绍 2.1 需求场景 对于 EditText来说,一般的需求有: 方便用户因出现输入错误而进行2次输入 标识用户正在填写项 根据具体场景增加一定的UI元素 2.2 功能需求 根据需求场景,得出EditText...具体如下图: 注:该样式的设置是系统自带的 API 所不具备的 功能列表 2.3 功能示意 3....特点 对比市面上EditText控件,该控件Super_EditText 的特点是: 3.1 功能实用 一键删除功能 在需求中非常常见,现将其封装后更加方便使用 可自定义样式程度高(比自带的强大 & 方便...功能详细设计 下面将给出详细的功能逻辑 4.1 一键清空输入字段 描述:将当前用户输入的字段清空 需求场景:方便用户因出现输入错误而进行2次输入 原型图 源码分析 /* * 步骤1:定义属性...、宽和高等信息 // x = 组件在容器X轴上的起点、y = 组件在容器Y轴上的起点、width=组件的长度、height = 组件的高度 // b.

    1.3K30

    安卓入门-第三章-安卓常用控件的使用方式

    它可配置的属性和TextView是差不多的,所以下标就给出一个不同的属性设置方式: 英文组合 中文含义 android:textAllCaps=“false” 取消字体默认大写的设置  我们可以在activity_main.xml...EditText的应用场景非常普遍,在进行发短信、发微博、聊QQ等操作时,你不得不使用EditText。...重新运行程序,在EditText中输入一段内容,然后点击按钮,效果如下图所示。 ?...,调用活动的方法时就能改变拖动条的当前值,达到最大值时,拖动条相当于就到了100%  ProgressBar用于在界面上显示一个进度条,表示我们的程序正在加载一些数据。...visible 表示控件是可见的,这个值是默认值,不指定android:visibility 时,控件都是可见的。

    1.9K20

    android学习笔记----ListView和各种适配器简介

    比如它会传入位置 0 但用户也可能位于列表中的位置 1 处 甚至 100 处,知道这一信息后,ArrayAdapter 会查看数据的内部来源,如果传入数组,那么它会查看数组,若传入列表比如ArrayList...在 Android 中适配器模式是个非常常见的模式。适配器知道数据来源是什么,例如数组或列表。...此列表中的第一个N个视图给出from参数中第一个N列的值。...意思就是从一个list集合中(装的map集合)获取数据,from要输入键和值,to就是给出到底哪个textview显示键,哪个textview显示值,给出textview的id就可以了。...将数据库的数据显示到ListView 这里给出主要代码,详细代码见Demo源码,地址在文章开头。

    2.2K10
    领券