Expandablelistview子项再次被召回

时间:2013-09-10 07:36:48

标签: android expandablelistview

我有一个可扩展的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。

1 个答案:

答案 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的很多设计和性能