我有一个 GridView,它显示了几十行自定义布局,每行都由一个 EditText 和一个 TextView 对象组成。
如果我理解正确,我应该扩展 BaseAdapter 类来完成它。如果是这样,我如何才能访问特定的 EditText 对象?
此外,如果其中一个 EditText View 不再可见, View 回收是否会导致我丢失用户输入的文本?
是否有更简单的方法来完成我在这里描述的内容(也许不是 GridView)?
最佳答案
当您扩展 BaseAdapter
时,您必须覆盖的方法之一是 getView(...)
。在此方法中,您创建需要显示的 View 。如果你想保留在 EditText
中输入的文本,你需要做的是在 EditText 上设置一个 TextWatcher
,传入 EditText 的位置(参数在getView(...)
),每当文本更改时,将文本保存在排序数组中。然后,每当该位置通过 getView(...)
方法返回时,从数组中获取文本并填充 EditText
。
关于Android 从 GridView 中的 EditText 获取文本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8069133/