CheckBox点击刷新后是否乱序

来源:互联网 发布:女装淘宝头像图片 编辑:程序博客网 时间:2024/05/14 10:08
package com.example.checkdemo;


import java.util.ArrayList;
import java.util.List;


import android.app.Activity;
import android.content.Context;
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.CheckBox;
import android.widget.CompoundButton;
import android.widget.CompoundButton.OnCheckedChangeListener;
import android.widget.LinearLayout;
import android.widget.ListView;
import android.widget.TextView;


public class MainActivity extends Activity {
private ListView listView;
private List<A> list;
private Adapter1 adapter1;


@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
initDate();
listView = (ListView) findViewById(R.id.listview);
adapter1 = new Adapter1(MainActivity.this);
listView.setAdapter(adapter1);
}


private void initDate() {
list = new ArrayList<A>();
A a;
for (int i = 0; i < 40; i++) {
/*if (i % 2 == 0) {
a = new A(i + "号位", A.TYPE_NOCHECKED);
list.add(a);
} else {
a = new A(i + "号位", A.TYPE_CHECKED);
list.add(a);
}*/
a=new A(i + "号位",  A.TYPE_NOCHECKED);
list.add(a);
}


}


class Adapter1 extends BaseAdapter {
private Context mContext;
 
public Adapter1(Context mContext) {
super();
this.mContext = mContext;
}




@Override
public int getCount() {
// TODO Auto-generated method stub
return list.size();
}


@Override
public Object getItem(int position) {
// TODO Auto-generated method stub
return list.get(position);
}


@Override
public long getItemId(int position) {
// TODO Auto-generated method stub
return position;
}


@Override
public View getView(int position, View convertView, ViewGroup parent) {
final int index = position;
ViewHolder viewHolder;
if (convertView == null) {
viewHolder = new ViewHolder();
System.out.println(mContext);
convertView = LayoutInflater.from(mContext).inflate(R.layout.item, null);
viewHolder.layout = (LinearLayout) convertView.findViewById(R.id.layout);
viewHolder.textView = (TextView) convertView.findViewById(R.id.textView);
viewHolder.checkBox = (CheckBox) convertView.findViewById(R.id.checkBox);
convertView.setTag(viewHolder);
} else {
viewHolder = (ViewHolder) convertView.getTag();
}
viewHolder.textView.setText(list.get(position).name);
//该点击事件 与下面设置checkxbox判断不能换位置
viewHolder.checkBox.setOnCheckedChangeListener(new OnCheckedChangeListener() {

@Override
public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
if (isChecked) {
list.get(index).type=A.TYPE_CHECKED;

}else{
list.get(index).type=A.TYPE_NOCHECKED;
}

}
});
if (list.get(index).type==A.TYPE_CHECKED) {
viewHolder.checkBox.setChecked(true);
}else{
viewHolder.checkBox.setChecked(false);
}
 



return convertView;
}


class ViewHolder {
LinearLayout layout;
TextView textView;
CheckBox checkBox;
}


}


class A {


public static final int TYPE_CHECKED = 1;
public static final int TYPE_NOCHECKED = 0;


String name;
int type;


public A(String name, int type) {
this.name = name;
this.type = type;
}
}
}
0 0