如何在android中的listview内更改另一个edittext值时更新edittext值

时间:2016-08-02 09:59:51

标签: android listview

我有一个带EditText的自定义列表视图,我的问题是当一个edittext值被更改时,我需要更新内部列表视图中的另一个edittext值。

例如:

如果edittext position1值为' 5'并且edittext position2值为' 2'意味着我需要更新特定的值,值是' 7' (5 + 2 = 7)。

如果没有在每次更改另一个edittext值时刷新视图,这怎么可能?

提前感谢...

2 个答案:

答案 0 :(得分:1)

我将给出一个广义的解决方案,而不是0/1等的位置。 因此,要执行此类操作,请执行以下步骤:

1.从ListView更改为RecyclerView。 2.RecyclerView强制开发人员遵循视图持有者模式(我假设你知道什么视图持有人模式,如果不是你可以google它)

因此,无论何时用户点击某行,您都会在您的recyclerview中获得点击的位置。

使用以下方法获取特定位置的视图

myRecyclerView.findViewHolderForAdapterPosition(pos);

此处pos是您要编辑edittext值的recyclerview行。

这是最棘手的部分。

由于recyclerview使用了视图模式,如果不在视口中,上面的方法可能会返回null(i:e;如果在屏幕中看不到它)

如果myRecyclerView.findViewHolderForAdapterPosition(pos);此方法返回的视图很好且很好(视图当前在池中并且可以访问)

如果不是,则返回null,所以你需要做的是记住事件,当用户滚动时,如果当前显示的位置与要更新的视图匹配,则会获得当前显示的位置,然后更新你的编辑文本。

实际上,一旦我面对同样的情况,这就是我如何解决它。

如果您有任何疑问,请在下方评论。

如果列表中只有两行,我就是这种情况。 myRecyclerView.findViewHolderForAdapterPosition(pos);此方法永远不会返回false,除非您的每一行都是屏幕大小。

答案 1 :(得分:0)

您可以使用edittext文本更改的侦听器进行此类实施,例如在编辑时更新文本...如何实现检查此链接android on Text Change Listener