我有一个GridView,它显示了几十行的自定义布局,每个布局都包含一个EditText和一个TextView对象。
如果我理解正确,我应该扩展BaseAdapter类来实现它。如果是这样,我如何才能访问特定的EditText对象?
另外,如果其中一个EditText视图不再可见,那么回收视图会导致我丢失用户输入的文本吗?
是否有更简单的方法来完成我在这里描述的内容(可能是GridView以外的其他内容)?
答案 0 :(得分:1)
当你扩展BaseAdapter
时,你必须覆盖的方法之一是getView(...)
。在此方法中,您将创建需要显示的视图。如果要保留在EditText
中输入的文本,您需要做的是在EditText上设置aa TextWatcher
,传入EditText的位置(getView(...)
中的参数) ,每当文本被更改时,将文本保存在各种类别中。然后,只要该位置通过getView(...)
方法返回,就从数组中获取文本并填充EditText
。
答案 1 :(得分:0)
你应该使用一个底层数据结构(比如一个List),它应该为Grid的每个元素保存数据。
应该从此列表中填充TextView和EditText。