主界面:
public class MainActivity extends AppCompatActivity {
private ListView listView;
private Button button;
private MyAdapter adapter;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
listView = (ListView) findViewById(R.id.listview);
button = (Button) findViewById(R.id.button);
button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
adapter.checkall();
}
});
adapter = new MyAdapter();
listView.setAdapter(adapter);
}
class MyAdapter extends BaseAdapter{
private ArrayList<Mess> list = new ArrayList<Mess>();
public MyAdapter(){
for (int i=1;i<50;i++){
list.add(new Mess("这是条目"+i));
}
}
public void checkall() {
for (Mess m:list){
m.ischeck = true;
}
notifyDataSetChanged();
}
@Override
public int getCount() {
return list.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) {
ViewHolder holder = null;
if(convertView == null){
convertView = View.inflate(MainActivity.this,R.layout.item,null);
holder = new ViewHolder();
holder.checkBox = (CheckBox) convertView.findViewById(R.id.checkBox);
convertView.setTag(holder);
}else {
holder = (ViewHolder) convertView.getTag();
}
final Mess msg = list.get(position);
holder.checkBox.setTag(msg.string);
holder.checkBox.setChecked(msg.ischeck);
holder.checkBox.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if(msg.ischeck){
msg.ischeck = false;
}else {
msg.ischeck = true;
}
}
});
return convertView;
}
}
class ViewHolder{
CheckBox checkBox;
}
}
Message类:
public class Mess {
public boolean ischeck;
public String string;
public Mess(String string){
this.string = string;
}
}