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

如何在RecyclerView中跟踪EditText中的值

在RecyclerView中跟踪EditText中的值,可以通过以下步骤实现:

  1. 在RecyclerView的Adapter中,为每个EditText设置一个TextWatcher监听器。可以在ViewHolder的构造函数中为EditText添加监听器,或者在onBindViewHolder方法中为每个EditText重新设置监听器。
  2. 在TextWatcher的onTextChanged方法中,获取EditText中的文本值,并将其存储到相应的数据模型中。可以通过调用Adapter中的方法来更新数据模型。
  3. 在RecyclerView的Adapter中,提供一个公共方法来获取所有EditText的值。该方法可以遍历数据模型,并返回一个包含所有EditText值的列表。

下面是一个示例代码:

代码语言:java
复制
public class MyAdapter extends RecyclerView.Adapter<MyAdapter.ViewHolder> {
    private List<MyDataModel> mDataList;

    public MyAdapter(List<MyDataModel> dataList) {
        mDataList = dataList;
    }

    @NonNull
    @Override
    public ViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
        View view = LayoutInflater.from(parent.getContext()).inflate(R.layout.item_layout, parent, false);
        return new ViewHolder(view);
    }

    @Override
    public void onBindViewHolder(@NonNull ViewHolder holder, int position) {
        MyDataModel data = mDataList.get(position);
        holder.editText.setText(data.getValue());
        holder.editText.addTextChangedListener(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) {
                data.setValue(s.toString());
            }

            @Override
            public void afterTextChanged(Editable s) {
            }
        });
    }

    @Override
    public int getItemCount() {
        return mDataList.size();
    }

    public List<String> getAllEditTextValues() {
        List<String> values = new ArrayList<>();
        for (MyDataModel data : mDataList) {
            values.add(data.getValue());
        }
        return values;
    }

    public static class ViewHolder extends RecyclerView.ViewHolder {
        EditText editText;

        public ViewHolder(@NonNull View itemView) {
            super(itemView);
            editText = itemView.findViewById(R.id.edit_text);
        }
    }
}

public class MyDataModel {
    private String value;

    public String getValue() {
        return value;
    }

    public void setValue(String value) {
        this.value = value;
    }
}

在上述示例中,MyAdapter是RecyclerView的适配器,MyDataModel是存储EditText值的数据模型。在onBindViewHolder方法中,为每个EditText设置了一个TextWatcher监听器,并在onTextChanged方法中更新了相应的数据模型。getAllEditTextValues方法可以用来获取所有EditText的值。

这样,通过RecyclerView的Adapter中的TextWatcher监听器,可以实时跟踪和更新EditText中的值,并通过公共方法获取所有EditText的值。

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

相关·内容

EditTextRecyclerView解决方案

有时候,一个列表Item会有EditText出现,而由于View复用机制,如果不好好处理EditText,将会出现一些问题。...其实有些问题出现,还是由于没有理解RecyclerView复用机制和EditText,主要原因还是菜,哈哈。...菜是原罪 EditTextRecyclerView问题 例子是这样,每个Item包含一个title、一张图片以及一个评分,这个评分就是通过输入框来输入。...解决方案 经过思考,由于RecyclerView复用机制,导致了以下关系存在: 一个ViewHolder——>一个EditText——>多个TextWatcher——>多个PicItem 这里我们可以将多个...总结 其实后来想想,如果能明白RecyclerView复用机制,EditTextTextWatcher机制,其实很容易解决这种问题,那么绕路了原因就是因为菜。哎,不多说了,学习去了。。

2.6K20

RecyclerView监听EditText变化BUG解决方法

需求:有一个列表,列表中有一个edittext(只能输整形),外部有一个整形变量Int,每次改变列表其中一项edittext时,外部Int都会改变。...n循环的话,想想就觉得这个算法很那啥,所以我想了另一个算法,每次改变其中一个item时,用总减去原itemedittext加上itemedittext新输入,这样复杂度为1,看着就很舒服...,数据超出可用容器时,会对edittext进行复用,也就是说,我们本身只想在addTextChangedListener中去监听手动改变edittext情况,而recyclerview重复调用setText...这逻辑看是完美,但是recyclerview帮你settext时,你befour就是复用前item数,而now就是新settext上去数。...在RecyclerView,不管你要做什么操作,不要直接对容器(ViewHolder)操作,而是对数据进行操作。

1.6K20

RecyclerView | 处理 RecyclerView 点击事件

本文是介绍 RecyclerView 入门 系列文章 第三篇。如果您已经对创建 RecyclerView 有了一定认识,请继续阅读本文。如果尚未熟悉,建议您首先阅读本系列 第一篇文章。...相关响应事件虽然数不胜数,但是它们均需要通过 onClick() 来实现。 定义点击动作 在创建监听器之前,在 Activity 类添加一个函数用于处理点击之后响应操作。 (FlowerDiffCallback()) 在 Activity 类,在初始化 Adapter 时候传入刚刚创建点击事件函数。...(itemView) 在初始化代码,调用 itemView setOnClickListener{}。...现在您 RecyclerView 可以响应点击事件了。 编程快乐! 下一步 请查阅包含 onClick() 完整示例。 感谢您阅读 RecyclerView 系列 文章第三篇。

2.1K10

何在字典存储路径

在Python,你可以使用嵌套字典(或其他可嵌套数据结构,嵌套列表)来存储路径。例如,如果你想要存储像这样路径和:1、问题背景在 Python ,我们可以轻松地使用字典来存储数据。...但是,如果我们需要存储 city 路径呢?我们不能直接使用一个变量 city_field 来存储这个路径,因为 city 是一个嵌套字典。...2、解决方案有几种方法可以存储字典中值路径。第一种方法是使用循环。我们可以使用一个循环来遍历路径每个键,然后使用这些键来获取值。...我们可以使用 reduce 函数来将一个路径所有键组合成一个函数,然后使用这个函数来获取值。...例如,我们可以使用以下代码来获取 city :print reduce(lambda x, y: x[y], city_field, person)这种方法比第一种方法更简洁,但是它有一个缺点:它只适用于路径键都是字符串情况

6410

何在keras添加自己优化器(adam等)

2、找到keras在tensorflow下根目录 需要特别注意是找到keras在tensorflow下根目录而不是找到keras根目录。...一般来说,完成tensorflow以及keras配置后即可在tensorflow目录下python目录中找到keras目录,以GPU为例keras在tensorflow下根目录为C:\ProgramData...找到optimizers.pyadam等优化器类并在后面添加自己优化器类 以本文来说,我在第718行添加如下代码 @tf_export('keras.optimizers.adamsss') class...# 传入优化器名称: 默认参数将被采用 model.compile(loss=’mean_squared_error’, optimizer=’sgd’) 以上这篇如何在keras添加自己优化器...(adam等)就是小编分享给大家全部内容了,希望能给大家一个参考。

44.9K30

何在 Google 跟踪代码管理器 (GTM) 安装 Matomo 跟踪

单击左侧菜单“标签”。 单击标签部分右上角“新建”按钮添加新标签。 单击“标签配置”以选择标签。 将弹出一个包含所有可用标签窗口,在此处单击“在社区模板库中发现更多标签类型”链接。...单击“标签配置”并选择“自定义 HTML” 复制标准 Matomo JavaScript 跟踪代码: 使用您管理员或超级用户帐户登录 Matomo。 单击右上角菜单“管理”(齿轮图标)。...单击左侧菜单跟踪代码”(在“可衡量”或“网站”菜单下)。 单击左侧菜单跟踪代码”。 单击“JavaScript 跟踪”部分。 选择您要跟踪网站。 复制跟踪代码。...将此 JavaScript 跟踪代码粘贴到标签配置 HTML 字段。 向下滚动并单击“触发”。 选择“所有页面”以在所有页面上触发“Matomo 跟踪标签”。 单击“保存”。...您已通过 Google 跟踪代码管理器成功设置了 Matomo 跟踪代码。要验证是否正在跟踪点击,请访问您网站并检查此数据在您 Matomo 实例是否可见。

29730

赛后跟踪:如何在 ImageNet 比赛获得冠军?

那么,今年ImageNet比赛为什么由这5部分组成?Hikvision(海康威视)是如何在场景识别一项夺得冠军?...今年 ILSVRC分为 任务目标检测(object detection) 目标分类与定位(object localization) 视频目标检测和跟踪(object detection / tracking...而目标检测、分类、跟踪及定位技术是计算机视觉领域基础算法,可以应用于许多领域。...▎具体,在detection task,您们在解决imbalance问题上具体sampling策略是怎样?您们是怎样确定某一个class正负样本比例?...训练过程先随机选择1个或几个类别,然后从各个类别所对应样本列表随机选择样本。这样可以保证每个类别参与训练机会比较均衡。

1.4K50

AndroidEditText禁止输入表情实例代码

最近在做项目中用户编辑资料时候不希望用户输入表情,如果用户输入表情的话上传给后台要报错,所以需要我们前端做一个判断。下面就来说一下怎么在EditText屏蔽表情吧。...网上有很多这样列子但是一不小心就会掉进坑里面,比如继承EditText,重写addTextChangedListener()方法。...因为上面的方法不行,肯定要想其他解决方案了。这里想到了通过过滤器来拦截用户输入字符,可以避免截取字符串角标越界问题。...); MyToast.showText("不支持输入表情"); return ""; } return null; } }; 然后给editText...设置filter,这里给editText设置了两个filter第一个是屏蔽表情,第二个是设置用户输入多少字数限制 //给editText设置filter edit_name.setFilters(new

2.1K41

何在 Python 中计算列表唯一

方法 1:使用集合 计算列表唯一最简单和最直接方法之一是首先将列表转换为集合。Python 集合是唯一元素无序集合,这意味着当列表转换为集合时,会自动删除重复。...生成集合unique_set仅包含唯一,我们使用 len() 函数来获取唯一计数。 方法 2:使用字典 计算列表唯一另一种方法是使用 Python 字典。...通过使用元素作为键,并将它们计数作为字典,我们可以有效地跟踪唯一。这种方法允许灵活地将不同数据类型作为键处理,并且由于 Python 字典哈希表实现,可以实现高效查找和更新。...然后,我们循环访问列表my_list并将每个作为字典键添加,为 1。由于字典不允许重复键,因此只会将列表唯一添加到字典。最后,我们使用 len() 函数来获取字典唯一计数。...检索唯一计数。

25820

AndroidEditText setText方法踩坑实战

1、平平常常中就这样开始 某一天,我准备做一个搜索功能,这个搜索功能呢大概是在主活动A,用EditText接收输入,当EditText监听到输入框内容有变化,跳转到活动B,活动B准备有搜索历史记录等等...:在A中有输入时,跳到B,在B确定好关键词后,点击搜索(你搜索在哪里,让你们看下图吧) ?...看到右下角我圈起来那个搜索按钮了吗,布局文件照着我那个写,监听就是editTextKeyWords.setOnEditorActionListener(……),布局重要是 android:inputType...,无奈之下,福灵心至,想到: 2、用了setHint()解决了当务之急 无奈之下选择了该方法,问题成功解决,也没什么明显瑕疵,就是心理一直惦记着,这他丫问题出在什么地方呢,定位当然是定位到了A活动...关键点我已经标出来了,在7和11间,有了监听方法执行,说明:EditTextsetText方法会触发 文本变化监听,这就是此次踩坑根源。

1.9K30

Android多个EditText输入效果解决方式

前言 在开发,我们常常遇到这种情况 ? 我们往往需要是下面这种效果 ?...但是如果把这些实现代码写在Activity中会比较麻烦,影响代码美观 解决方法 于是就有了下面这个辅助类,禁用了按钮点击事件和按钮渐变色,可同时添加一个或者多个EditText /** *...文本输入辅助类,通过管理多个TextView或者EditText输入是否为空来启用或者禁用按钮点击事件 */ public final class TextInputHelper implements...EditText,还可以添加TextView,因为EditText是TextView子类,最后要是觉得好用记得点个赞。...总结 以上就是这篇文章全部内容了,希望本文内容对大家学习或者工作具有一定参考学习价值,如果有疑问大家可以留言交流,谢谢大家对ZaLou.Cn支持。

1.9K20
领券