向下滚动时自定义列表视图复选框和编辑框丢失数据

时间:2017-06-30 11:31:39

标签: android listview checkbox

大家好我是android新用户我在ListvieweditText进行了自定义checkbox,当我选中此框并在editText中输入数据并滚动{{ 1}}并返回到该框,将其状态更改为先前状态意味着未选中且listView框数据丢失公开

editText

这是我的getview功能,如果有任何机构可以解决这个问题,请

2 个答案:

答案 0 :(得分:0)

创建布尔'isChecked'并更新代码

checkbox1.setChecked(isChecked);
checkbox1.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {

  @Override
  public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
    this.isChecked = isChecked;
    //Follow as you code......................
  }
});

答案 1 :(得分:0)

这里的问题是,滚动时不保存listview创建的视图。因此,首先要了解listview的工作原理,它总是在滚动时从convertView创建一个新实例。因此,我建议您使用ViewHolder模式进行listview,使用setTag()函数设置信息,并在向后滚动时通过getTag()从中检索信息。

    static class ViewHolder{
    CheckBox checkbox1;
    TextView Des;
    final TextView stockid;
    final EditText done;
    }

并按如下方式更改getView中的代码:

View getView(final int position, View arg1, ViewGroup viewGroup) {
    ViewHolder holder = new ViewHolder();
    if(arg1 == null){
        arg1 = LayoutInflater.from(viewGroup.getContext()).inflate(R.layout.stocklistcustom, viewGroup, false);
//Now set all your views using arg1
//do all your stuff
arg1.setTag(holder);
    }else{
    holder = (ViewHolder) arg1.getTag();
}

return arg1;