我有一个可扩展的listview.on扩展一个组我正在通过一个带有编辑文本的页脚获得子视图。当我在该编辑文本中写入内容时,当我向上/向下滚动写入其中的文本时,它会被删除。所以我已经关注了这个链接collasping
expandable-listview它可以工作,但是我一次扩展了一个组,但是如果在滚动时保持值保持不变,并且当组被折叠时清除它...请帮忙。 继承我的育儿代码
public View getChildView(int gposition, int childposition, boolean isLastChild, View arg3, ViewGroup arg4) {
// TODO Auto-generated method stub
LayoutInflater inf=getLayoutInflater();
if(childposition == 0)return arg3 = inf.inflate(R.layout.child_header, null);
if(isLastChild){
arg3 = inf.inflate(R.layout.child_footer, null);
}
在这个子页脚中我有一个edittext。
答案 0 :(得分:0)
看看这个link,这很简单,并且很好地解释了你的问题的解决方案(它不是expandablelistview,但理论是一样的)。
核心问题是:
您无法在
ListView
项目上保存任何内容。您必须处理另一个数据源 在ListView
的项目中维护您的更改。
这是执行此任务的代码的一部分:
//Fill EditText with the value you have in data source
holder.caption.setText(myItems.get(position).caption);
holder.caption.setId(position);
//we need to update adapter once we finish with editing
holder.caption.setOnFocusChangeListener(new OnFocusChangeListener() {
public void onFocusChange(View v, boolean hasFocus) {
if (!hasFocus){
final int position = v.getId();
final EditText Caption = (EditText) v;
myItems.get(position).caption = Caption.getText().toString();
}
}
});
您只需要创建一个myItems
,它不是一个简单的列表,而是List<List>
或Map<String, List>
。
对于小组的崩溃,请看一下这个answer,我认为它比循环一个更有效
另外看看这个video它会改善你的listview / expandablelistview的很多设计和性能