大家好我是android新用户我在Listview
和editText
进行了自定义checkbox
,当我选中此框并在editText
中输入数据并滚动{{ 1}}并返回到该框,将其状态更改为先前状态意味着未选中且listView
框数据丢失公开
editText
这是我的getview功能,如果有任何机构可以解决这个问题,请
答案 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;