【发布时间】:2014-07-23 10:16:08
【问题描述】:
由于 Android 的回收政策,我在 Android 中使用可扩展列表视图,并且在子项中的交互式 EditTexts 存在巨大问题。
我想知道是否可以以某种方式禁用这种回收(那里不会有太多元素,所以性能应该不是问题)?
问题是 EditTexts 中有重复项,即如果我在第一个 EditText 中输入内容,则可能在其他一些 EditText 中出现相同的文本,或者如果我折叠并展开一个组,则字符串EditTexts 经常混淆。
按照我的代码:
编辑:
@Override
public View getChildView(final int groupPosition, final int childPosition, boolean isLastChild, View convertView, ViewGroup parent) {
ChildItem item = getChild(groupPosition, childPosition);
String comment = "";
state = getStatelist().get(groupPosition);
if (convertView == null) {
holder = new ChildHolder();
convertView = inflater.inflate(R.layout.childitem_list_item, parent, false);
holder.title = (EditText) convertView.findViewById(R.id.textTitle);
convertView.setTag(holder);
} else {
holder = (ChildHolder) convertView.getTag();
}
if(state.commentList != null){
holder.title.setText(state.commentList[childPosition]);
}
else{
holder.title.setText("");
}
holder.title.addTextChangedListener(new TextWatcher() {
@Override
public void onTextChanged(CharSequence s, int start, int before, int count) {
state = getStatelist().get(groupPosition);
state.commentList[childPosition] = s.toString();
}
@Override
public void beforeTextChanged(CharSequence s, int start, int count, int after) {
}
@Override
public void afterTextChanged(Editable s) {
}
});
}
public class States {
public String code = "";
public String name = "";
public String[] commentList;
}
【问题讨论】:
-
简单地忽略非空
convertView(每次构建行视图)不起作用? -
不幸的是它没有;因为我使用的是 EditTexts,所以当我不使用 viewHolder 模式时会出现重复的条目。
-
如果你正确设置数据,我看不出你会有重复。我只是在谈论 convertView 而不是 ViewHolder 模式。
-
@Luksprog 请检查我编辑的问题。
-
如果您想拥有 EditText 字段,请不要使用 ListViews。请改用线性布局。就这么简单。
标签: android expandablelistview recycle