为什么我只点击了前面几项,往下滑动,checkbox下面却自动点击了,而且TextView也只有部分数据显示到当前屏幕,往下滑动时,却重复之前的数据?
public class MainActivity extends AppCompatActivity {
ListView listView;
List studentList = new ArrayList();
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
listView = (ListView) findViewById(R.id.listv);
listView.setAdapter(new MyAdapter());
Student student;
for (int i=0;i<30;i++){
student = new Student("Tom"+i,10+i);
studentList.add(student);
}
}
class MyAdapter extends BaseAdapter{
@Override
public int getCount() {
return studentList.size();
}
@Override
public Object getItem(int position) {
return null;
}
@Override
public long getItemId(int position) {
return 0;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
final Student student = studentList.get(position);
View view = null;
if (convertView ==null){
view = View.inflate(MainActivity.this,R.layout.checkbox_layout,null);
}else{
view = convertView;
}
final CheckBox checkBox1 = (CheckBox) view.findViewById(R.id.cb1);
final TextView textView = (TextView) view.findViewById(R.id.textinfo);
//textView.setText(student.toString());
checkBox1.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
@Override
public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
if (isChecked){
textView.setText(student.toString());
}
}
});
return view;
}
}
}
http://www.jcodecraeer.com/a/anzhuokaifa/androidkaifa/2014/1021/1815.html
你应该把CheckBox是否选中保存一个变量的
下面的复用了上面的convertView,最好是在getView中写好默认的状态、