我使用在ListView的ToggleButtons,我设置为从Web服务数据切换按钮的状态,现在我改变了切换按钮的状态,但它是复位以前,当我滚动列表视图。
我曾经在我的适配器类以下。
tbtnStatus=(ToggleButton)view.findViewById(R.id.togglebtn);
tbtnStatus.setTag(new Integer(position));
tbtnStatus.setOnCheckedChangeListener(null);
tbtnStatus.setOnCheckedChangeListener(new OnCheckedChangeListener() {
@Override
public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
// TODO Auto-generated method stub
String update_status;
String current_status=buttonView.getText().toString();
if(current_status.equals("ON"))
{
update_status="NO";
}
else
{
update_status="YES";
}
String res=UrltoValue.getValuefromUrl(DataUrls.updateindividualstaus+"?pilotid="+DataUrls.pilotid+"&friendid="+friendid[position]+"&status="+update_status);
}
});
您的切换按钮的状态将被清零,这是每个当你sroll它在屏幕的时间Web服务数据的默认值,因为所有的意见目前不可见的行被删除,并会使用默认值来重新创建。你需要你切换按钮来保存状态。例如,你可以,如果你使用ArrayAdapter<Object>
与该行相关联的对象保存。
保存您查看的位置当u检查各自观点的切换按钮...在getView()编写代码
if(yourposition==position)
tbtnStatus.setChecked(true);
假设你点击了第三的位置toggle..save 3为yourposition当U将滚动getView被调用,将satify状态检查您切换为yes