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

我无法写入EditText,当我尝试写东西时它会消失,因为当我修改数据时会调用getView()

问题描述:

我无法写入EditText,当我尝试写东西时它会消失,因为当我修改数据时会调用getView()。

解决方案:

这个问题可能是由于ListView或RecyclerView的重用机制导致的。当你滚动列表或进行其他操作时,会调用getView()方法来重新绘制列表项。如果你在getView()方法中没有正确地处理EditText的数据,就会导致输入的内容消失。

以下是一些可能的解决方案:

  1. 确保你正确地处理了数据的保存和更新。当用户输入内容时,你应该将其保存到适当的数据结构中,例如一个List或一个数据库。在getView()方法中,你应该使用保存的数据来设置EditText的文本。
  2. 在getView()方法中,你需要正确地设置EditText的文本。你可以使用setText()方法将保存的数据设置到EditText中。
  3. 确保你正确地处理了焦点和点击事件。当用户点击EditText时,你需要确保EditText获取焦点,并且键盘正确地弹出。你可以使用requestFocus()方法来请求焦点,并使用InputMethodManager来显示键盘。
  4. 如果你使用了自定义的Adapter,确保你正确地重写了getItemId()和getItemViewType()方法。这些方法在重用机制中起着重要的作用,确保正确地识别和处理不同类型的列表项。
  5. 如果你使用了ViewHolder模式,确保你正确地更新ViewHolder中的数据。当调用getView()方法时,你应该更新ViewHolder中的数据,并将其设置到相应的视图中。

总结:

以上是解决无法写入EditText并导致内容消失的一些常见解决方案。请根据你的具体情况选择适合你的方法。如果问题仍然存在,你可以进一步调试和排查代码,确保正确地处理EditText的数据和事件。

腾讯云相关产品推荐:

腾讯云提供了一系列云计算产品,包括云服务器、云数据库、云存储等。这些产品可以帮助你构建和管理云计算基础设施,提供稳定可靠的服务。

推荐的腾讯云产品:

  1. 云服务器(CVM):提供弹性计算能力,可根据业务需求快速创建和管理虚拟机实例。了解更多:腾讯云云服务器
  2. 云数据库MySQL版(TencentDB for MySQL):提供高性能、可扩展的关系型数据库服务,适用于各种应用场景。了解更多:腾讯云云数据库MySQL版
  3. 云对象存储(COS):提供安全可靠的对象存储服务,适用于存储和管理各种类型的数据。了解更多:腾讯云云对象存储

请注意,以上推荐的产品仅作为参考,具体选择应根据你的需求和实际情况进行。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

  • android之activity的生命周期详解

    比如要做一个简单的mp3的播放器,那播放音乐的函数调用应该放在哪个状态里面呢,首先,我们尝试放在最熟悉的onCreate里面,那么启动之后一切正常,onCreate,onStart,onResume三个状态依次执行...BACK键,我们这个应用程序将结束,这时候我们将先后调用onPause()->onStop()->onDestory()三个方法,如下图所示:   HOME键:   当我们打开应用程序时,比如浏览器...,当我们按HOME键,然后再进入ActivityDemo应用时,我们的应用的状态应该是和按HOME键之前的状态是一样的,同样为了方便理解,在这里将ActivityDemo的代码作一些修改,就是增加一个...第四步:修改main.xml布局文件(增加了一个EditText),代码如下: <?xml version="1.0" encoding="utf-8"?...HOME键,再次启动应用程序时,EditText里有上次输入的”Frankie”字样,如下图如示:   OK,大功基本告成,这时候大家可以在回上面看一下Activity生命周期图,想大家应该完全了解了

    57520

    Android UI开发中所遇到的各种坑

    尝试方案:寻找各种方法去隐藏软键盘,网上各种找。思路是在活动退出,会调用onDestroy方法销毁界面,在这个方法里面想办法隐藏界面即可。找到下面这种方法,但还是不行。...还尝试过用基类找到所有edittext然后让它们失去焦点,隐藏软键盘。...<activity Android:windowSoftInputMode="adjustResize" 2.merge标签注意点 merge标签只有在根布局是FrameLayout才有用,因为安卓所有界面的根布局都是...merge标签使用后,布局里即使有EditText无法自动获得焦点,只能手动设置焦点, 调用requestFocus()方法。或者是用requestFocus》在XML布局文件里。...使用后要注意如果在根布局中,则不能用LayoutInflater来生成一个view,否则会报如下错误,由于我在listview的getview()里用了这个带有merge的布局,所以崩溃了。

    1.3K20

    译文 | 怎样用 JRebel for Android

    如果因为某些原因你无法访问 maven 的公有仓库,你可以直接在 JetBrians 官网下载,然后通过 Plugins > Install plugin from disk… 来安装插件。...用JRebel for Android 来运行你的应用程序 安装完插件后,只需要点击 Run with JRebel for Android 按钮,它会检测这次代码与上次是否有改动,然后决定是否构建一个新的...在JRebel for Android应用代码修改 Apply changes 按钮是使用 JRebel for Android的关键,它将会做最少的工作来将你代码的改动更新到你的设备上去。...步骤4: 在 SessionFeedbackFragment.sumbitFeedback() 方法中弹出Toast EditText nameInput = (EditText) getView()...为什么尝试使用JRebel for Android 下面列出了最有说服力的理由,来让你使用它。 1、可以快速看到自己代码改动的效果。 2、可以有时间打磨素完美的UI,而不用浪费时间在构建上。

    1.4K40

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

    调用getView会回调实现类的getView,我们来看看mAdapter什么时候调用getView,现在来看看AbsListView里面的mAdapter.getView(...)会在哪里调用?...比如它会传入位置 0 但用户也可能位于列表中的位置 1 处 甚至 100 处,知道这一信息后,ArrayAdapter 会查看数据的内部来源,如果传入数组,那么它会查看数组,若传入列表比如ArrayList...,当视图被滚动离开屏幕后,它们就会被添加到Scrap Pile,比如前两个列表项不再可见,它们将进入 Scrap Pile,然后当我们请求新的列表项,我们可以通过将这些视图再返回到 ArrayAdapter...暂时你可以想象成用户界面与数据模型之间是分开的,分开的并不完全清晰,因为 ArrayAdapter 处理的是视图,但是主要是 ListView 负责处理用户界面的细节内容,而适配器负责数据因为界面和数据二者是分开的...当convertView不为null调用View的getTag方法,把ViewHolder对象重新取出。

    2.2K10

    Android编程实现状态保存的方法分析

    在我们接电话的过程中,我们发信息的那个Activity是可能会被系统回收的,这时会调用Activity的onSaveInstanceState回调方法,而我们就可以在这个方法中保存状态数据,在onCreate...在onPause方法中保存状态数据,在onResume方法中进行状态恢复。 activity的状态是被保留在内存中的,当resume它会立即开始执行。...,即当系统“未经你许可”销毁了你的activity,则onSaveInstanceState会被系统调用,这是系统的责任,因为它必须要提供一个机会让你保存你的数据(当然你不保存那就随便你了)。...比如,当用户在一个activity上按返回,就不会调用因为用户此时明确知道这个activity是要被销毁的,并不期望下次它的样子跟现在一样(当然开发者可以使它保持临死的表情,你非要这样做,系统也没办法...注:由于onSaveInstanceState()并不是每次销毁都会调用,所以不要在其中保存那些需要永久化的数据,执行保存那些数据的最好地方是:onPause()中。

    66431

    多图深入理解 Redis

    Redis 高可用性 Redis 的另一个流行设置是主从部署方式,从部署保持与主部署之间数据同步。当数据写入主实例它会将这些命令的副本发送到从部署客户端输出缓冲区,从而达到数据同步的效果。...所以当一个新的客户端尝试向 Redis 写东西,Sentinel 会告诉客户端当前的主实例是什么。...因此,它需要独立跟踪确认,如果至少有一个副本实例没有确认它们,主实例将停止接受写入。 Redis 集群 相信很多人都想过当你无法将所有数据存储在一台机器上的内存中时会发生什么。...当我们之后想在系统中添加一个新的分片时会发生什么?这个过程称为重新分片。 假设键 'foo' 之前映射到分片 0, 在引入新分片后它可能会映射到分片 5。...认为这是设置 Redis 的一种可接受的方式。在重启的情况下,请记住如果两者都启用,Redis 将使用 AOF 来重建数据因为它是最完整的。

    61830

    图解Redis

    Redis 高可用性 Redis 的另一个流行设置是主从部署方式,从部署保持与主部署之间数据同步。当数据写入主实例它会将这些命令的副本发送到从部署客户端输出缓冲区,从而达到数据同步的效果。...所以当一个新的客户端尝试向 Redis 写东西,Sentinel 会告诉客户端当前的主实例是什么。...因此,它需要独立跟踪确认,如果至少有一个副本实例没有确认它们,主实例将停止接受写入。 Redis 集群 相信很多人都想过当你无法将所有数据存储在一台机器上的内存中时会发生什么。...当我们之后想在系统中添加一个新的分片时会发生什么?这个过程称为重新分片。 假设键'foo' 之前映射到分片 0, 在引入新分片后它可能会映射到分片 5。...认为这是设置 Redis 的一种可接受的方式。在重启的情况下,请记住如果两者都启用,Redis 将使用 AOF 来重建数据因为它是最完整的。

    41820

    Android富文本开发

    使用WebView+js+css方式,富文本格式用html方式展现,比较复杂,对标签要非常熟悉才可以尝试使用 使用原生控件多焦点问题分析 界面是由多个输入区域拼接而成,暂且把输入区域称为EditText...第二次:将inJustDecodeBounds设置为false再次调用decode函数就能生成bitmap了。而此时的bitmap已经压缩减小很多了,所以加载到内存中并不会导致OOM。...如何运用到插入或者删除图片场景中 向一个ViewGroup添加控件或者移除控件,这两种效果的过程是应对应于控件的显示、控件添加其他控件的位置移动、控件的消失、控件移除其他控件的位置移动等四种动画效果...stateAlwaysHidden-总是隐藏状态:当设置该状态,软键盘总是被隐藏,和stateHidden不同的是,当我们跳转到下个界面,如果下个页面的软键盘是显示的,而我们再次回来的时候,软键盘就会隐藏起来...stateAlwaysVisible-总是显示状态:当设置为这个状态,软键盘总是可见的,和stateVisible不同的是,当我们跳转到下个界面,如果下个页面软键盘是隐藏的,而我们再次回来的时候,软键盘就会显示出来

    8.5K20

    【专业技术】Android内存泄漏简介

    解决方案: 其实如果我们一个程序中,已经不再使用某个对象,但是因为仍然有引用指向它,垃圾回收器就无法回收它,当然该对象占用的内存就无法被使用,这就造成了内存泄露。...1.2、集合容器对象没清理造成的内存泄露 我们通常把一些对象的引用加入到了集合容器(比如ArrayList)中,当我们不需要该对象,并没有把它的引用从集合中清理掉,这样这个集合就会越来越大。...1.5、WebView对象没有销毁 当我们不要使用WebView对象,应该调用它的destory()函数来销毁它,并释放其占用的内存,否则其占用的内存长期也不能被回收,从而造成内存泄露 1.6、GridView...因为有些资源性对象,比如SQLiteCursor(在析构函数finalize(),如果我们没有关闭它,它自己会调close()关闭),如果我们没有关闭它,系统在回收它也会关闭它,但是这样的效率太低了。...程序中经常会进行查询数据库的操作,但是经常会有使用完毕Cursor后没有关闭的情况。

    1.1K30

    - 红队渗透小技巧

    (如果匿名登陆成功无法下载文件,尝试加入--no-passive参数),ssh弱口令必须尝试一下(各类数据库都外联弱口令尝试一下),81,88,888常见的web端口,389是ldap的默认端口,内网里面可能为域控...(3)逻辑漏洞 1.存在注入拿下了账号,但是admin的账号hash解不开,可以在后台尝试修改密码,看是否存在逻辑漏洞 2.关于爆破的后台验证码,可以更换为万能验证码(0000,8888尝试均失败,不知哪儿听说的...就是想告诉大家别没有思路的时候就提权,而是看我们提了权能给我们进一步带来什么,当我们渗透没有思路,就回顾一下自己打点到目前的位置,是不是每一步的信息收集都收集好了。...(6)内网的一些小技巧 1.当某些软件正在运行或者权限不够我们看不了,我们可以copy到一个位置然后在type 2.如果某些环境出现中文名而且我们的c2工具因为字符不能识别无法正常渗透,可以考虑写入bat...或者vbs 3.当我们mstsc连接出现问题,我们可以mstsc /admin mstsc /console 4.当我们echo一个一个字符追加,但是换行了,可以这样 ?

    1.4K40

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

    EditText的应用场景非常普遍,在进行发短信、发微博、聊QQ等操作,你不得不使用EditText。...可以看到,EditText中显示了一段提示性文本,然后当我们输入任何内容,这段文本就会自动消失。  不过,随着输入的内容不断增多,EditText会被不断地拉长。...,达到最大值,拖动条相当于就到了100%  ProgressBar用于在界面上显示一个进度条,表示我们的程序正在加载一些数据。...这时你可能会问,旋转的进度条表明我们的程序正在加载数据,那数据总会有加载完的时候吧?如何才能让进度条在数据加载完成消失呢?这里我们就需要用到一个新的知识点:**Android控件的可见属性。...当然,当本书后面涉及一些我们前面没学过的控件和相关用法仍然会在相应的章节做详细的讲解。

    1.8K20

    EditText 集锦 - 开发中常用的用法及遇到的各种坑

    @null"设置背景为透明.当我们设置背景后,EditText的那条线就会消失. android:textAppearance //设置文本的颜色,字体,大小和样式. android:digits //...是否可以编辑.当你设置为true,会提示你该EditText已经是可编辑的.设置为false时会提示使用inputType替代. android:inputType //设置文本的类型,用于帮助输入法显示合适的键盘类型.... android:maxLength //设置EditText最多接受的文本的个数. android:lines //设置EditText显示的行数,设置两行就显示两行,即使第二行没有数据. android...但有些情况,会因为焦点被别的控件获取了,我们又想让它自动获取焦点,并自动弹出键盘。...,就是当你的 text 超过 30 个字符的时候,你调用 mEtText.setText ,这时候会报错。

    2.3K20

    笔记32 | UI系列之EditText和AutoCompleteTextView

    键盘就会变成一个打电话的键盘 <EditText android:id="@+id/counts" android:layout_width="match_parent...EditText有一个setError的方法,当调用这个方法,则表示输入的数据不合法,我们来看看官方的API对该方法的解释: void android.widget.TextView.setError...这个方法会给我们一个错误的小图标以及弹出的一段错误提示信息,当我们的这个EditText控件获得焦点的时候,当我们在文本框中输入了任何的值后,这个icon和message都会消失,例如: ?...extends EditText 我们通常都是自己定义了一组数据集合,可以是array,可以是list,还可以是网络传过来的数据,这组数据是以下拉菜单的方式根据我们输入的关键字来匹配我们数据集合中满足条件的数据项...SimpleAdapter, SimpleCursorAdapter, SpinnerAdapter, WrapperListAdapter 我们看到,Android为我们提供了许多的Adapter,这是因为我们的数据可能来自不同的途径

    46150

    Android端IM应用中的@人功能实现:仿微博、QQ、微信,零入侵、高可扩展

    3、保证文本上绑定的数据的安全可靠 当我们把Span绑定到文本上以后,我们需要在文本发生变化时,保证文本和数据的安全性,可靠性,一致性。...4.2 侦听软键盘删除键并处理选中状态 现在已经把Span覆盖的文本作为一个整体,且无法插入光标,但是当我们从Span尾部删除文本,仍是逐字删除。...轮子都造好了,你告诉轴承断了。 并且,当你打印EditText文本上的Span,你找不到SelectionSpanWatcher。...不仅如此,我们必须完全禁用setText(),因为每一次调用,都会清除掉SelectionSpanWatcher。 这种方式看起来还不错,但是换一个不熟悉这个特性的人来使用怎么办?...需要思考的问题是,SelectionSpanWatcher在哪里消失了?要重新找回这个轴承。

    2.2K30

    真·富文本编辑器的演进之路-Span的整体性控制

    转化为Drawable,设置给ATSpan,并传入@的相关数据信息 将ImageSpan插入Edittext,实现整体性Span的富文本插入 可以发现,这种方案的实现步骤是比较简单的,但是它的确定也很明显...那么问题来了,要怎么监听Edittext的光标呢?...在TextVIew的内部,它通过DynamicLayout来渲染Spannable数据,在其内部会设置SpanWatcher来监听Span的新增、修改和删除,当监听到变化后,会调用其内部的方法进行刷新。...Selection在「整体性Span」(通过IntegratedSpan来标记)中,就自动修改Selection的位置,从而实现「整体性Span」中间无法插入光标。...当我们检测到这两个事件后,根据当前Selection的位置,拿到当前是否存在「整体性Span」,如果是「整体性Span」,那么在删除则整体移除即可。

    2K30

    EasyValidate优雅地校验提交数据完整性

    So,作为一位矮肥圆,不得不承认,这东西很适合。所以,使用它结合Butternife写了一个校验提交前数据合法性的一个工具,用于即将重构的项目。...int[] plan() default {Plan.DEFAULT};//校验计划 } ② ValidateCheck (判断控件是否选中状态, 当控件选中的状态与validateState字段的值相同时会提示...哦对了,在上面调用验证方法是会有一个 Plan.DEFAULT 这个是干嘛的呢?请接着看。 Plan的使用(注解中默认的Plan为DEFAULT) 当我们在开发的时候。...,toast = "手机密码不能为空",plan = Plan.B) EditText et_pw; 在调用时分别传入Plan即可 if(!...使用的注意事项 组件化 开发要配合Butternife使用,懒得去生成R2文件了,毕竟重复造轮子没意义是吧。 结言 嗯。。。效果图就不发了。就这样子吧。

    49920
    领券