0

我有一个可扩展的列表视图。在扩展一个组时,我得到了带有页脚的子视图,页脚有一个编辑文本。现在,当我在该编辑文本中写一些东西时,当我向上/向下滚动时,里面写的文本会被空白。所以我已按照此链接折叠

expandable-listview 它可以工作,但是有一次我正在扩展一个组,但是如何在滚动时保持值不变,并在组折叠时清除它..请提供任何帮助。这是我的childview代码

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);
    }

在这个子页脚中,我有一个编辑文本。

4

1 回答 1

0

看看这个链接,很简单,很好的解释了你的问题的解决方案(不是expandablelistview,但原理是一样的)。

核心问题是:

您无法在ListViewItem 上保存任何内容。您必须需要处理另一个数据源来维护您在ListView's 项目中的更改。

这是完成这项工作的代码部分:

 //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不是简单列表而是 aList<List>或 a 的Map<String, List>.

对于组的崩溃,请看一下这个答案,我认为它比循环更有效

也看看这个视频它会改善你的listview/expandablelistview的很多设计和性能

于 2013-09-10T08:22:24.650 回答