全选 反选

来源:互联网 发布:nginx ssi绝对路径 编辑:程序博客网 时间:2024/05/20 17:23

——————————Main
package com.example.firstobject;

import java.io.IOException;
import java.util.Iterator;
import java.util.List;

import org.apache.http.HttpEntity;
import org.apache.http.HttpResponse;
import org.apache.http.StatusLine;
import org.apache.http.client.ClientProtocolException;
import org.apache.http.client.HttpClient;
import org.apache.http.client.methods.HttpGet;
import org.apache.http.impl.client.DefaultHttpClient;
import org.apache.http.util.EntityUtils;

import android.app.Activity;
import android.os.Bundle;
import android.os.Handler;
import android.os.Message;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemClickListener;
import android.widget.Button;
import android.widget.ListView;

import com.example.Bean1.Bean1;
import com.example.Bean1.Data;
import com.example.firstobject.Myadapter.Viewholder;
import com.google.gson.Gson;

public class MainActivity extends Activity implements OnClickListener{
String path=”http://www.93.gov.cn/93app/get_columns.do”;
private List list;
private int checkNum; // 记录选中的条目数量

private Myadapter ss;

private Button quanxuan,fanxuan,delete;

private ListView lv;Handler handler=new Handler(){    public void handleMessage(android.os.Message msg) {        list=(List<Data>) msg.obj;        ss=new Myadapter(MainActivity.this,list);        lv.setAdapter(ss);        lv.setOnItemClickListener(new OnItemClickListener() {            @Override            public void onItemClick(AdapterView<?> arg0, View arg1,                    int arg2, long arg3) {                // TODO Auto-generated method stub                Viewholder holder = (Viewholder) arg1.getTag();                     // 改变CheckBox的状态                     holder.cb.toggle();                     // 将CheckBox的选中状况记录下来                     Myadapter.getIsSelected().put(arg2, holder.cb.isChecked());                     // 调整选定条目                     if (holder.cb.isChecked() == true) {                         checkNum++;                     } else {                         checkNum--;                     }             }        });    };};@Overrideprotected void onCreate(Bundle savedInstanceState) {    super.onCreate(savedInstanceState);    setContentView(R.layout.activity_main);    lv=(ListView) findViewById(R.id.lv);    quanxuan=(Button) findViewById(R.id.quanxuan);    fanxuan= (Button) findViewById(R.id.fanxuan);    delete=(Button) findViewById(R.id.delete);    quanxuan.setOnClickListener(this);    fanxuan.setOnClickListener(this);    new Thread()    {        public void run() {            getdata();        }    }.start();}private void getdata() {    // TODO Auto-generated method stubHttpClient httpClient=new DefaultHttpClient();HttpGet httpGet=new HttpGet(path);try {    HttpResponse execute = httpClient.execute(httpGet);    StatusLine statusLine = execute.getStatusLine();    int statusCode = statusLine.getStatusCode();    if(statusCode==200)    {        HttpEntity entity = execute.getEntity();        String string = EntityUtils.toString(entity);        Gson gson=new Gson();        Bean1 bean1 = gson.fromJson(string, Bean1.class);        List<Data> data = bean1.data;        Message msg=Message.obtain();        msg.obj=data;        handler.sendMessage(msg);    }} catch (ClientProtocolException e) {    // TODO Auto-generated catch block    e.printStackTrace();} catch (IOException e) {    // TODO Auto-generated catch block    e.printStackTrace();}}@Overridepublic void onClick(View v) {    // TODO Auto-generated method stub    switch (v.getId()) {    case R.id.quanxuan:        //遍历list的长度,将MyAdapter中的map值全部设为true        for(int i=0;i<list.size();i++)        {            Myadapter.getIsSelected().put(i,true);        }        checkNum=list.size();        dataChanged();        break;    case R.id.fanxuan:        //遍历list的长度,将以选的设为未选,未选的设为已选        for(int i=0;i<list.size();i++)        {            if(Myadapter.getIsSelected().get(i))            {                Myadapter.getIsSelected().put(i,false);                checkNum--;            }            else            {                Myadapter.getIsSelected().put(i,true);                checkNum++;            }        }        dataChanged();        break;    case R.id.delete:        break;    default:        break;    }}private void dataChanged() {    // TODO Auto-generated method stub    ss.notifyDataSetChanged();}

}
————————————-Myadapter
package com.example.firstobject;

import java.util.HashMap;
import java.util.List;

import android.content.Context;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.CheckBox;
import android.widget.TextView;

import com.example.Bean1.Data;

public class Myadapter extends BaseAdapter {

private Context context;private List<Data> list;//用来控制CheckeBox的选中状况private static HashMap<Integer, Boolean> isSeleced;//用来导入布局private LayoutInflater inflater=null;public Myadapter(Context context, List<Data> list) {    super();    this.context = context;    this.list = list;    inflater=LayoutInflater.from(context);    isSeleced=new HashMap<Integer, Boolean>();    //初始化数据    initdata();}//初始化isSelected的private void initdata() {    // TODO Auto-generated method stub    for(int i=0;i<list.size();i++)    {        getIsSelected().put(i,false);    }}@Overridepublic int getCount() {    // TODO Auto-generated method stub    return list.size();}@Overridepublic Object getItem(int position) {    // TODO Auto-generated method stub    return null;}@Overridepublic long getItemId(int position) {    // TODO Auto-generated method stub    return 0;}public static HashMap<Integer, Boolean> getIsSelected(){    return isSeleced;}  public static void setIsSelected(HashMap<Integer, Boolean> isSelected) {         Myadapter.isSeleced = isSelected;     } @Overridepublic View getView(int position, View convertView, ViewGroup parent) {    // TODO Auto-generated method stub    Viewholder hViewholder;    if(convertView==null)    {        hViewholder=new Viewholder();        convertView=View.inflate(context, R.layout.item, null);        hViewholder.tv=(TextView) convertView.findViewById(R.id.tv);        hViewholder.cb=(CheckBox) convertView.findViewById(R.id.cb);        convertView.setTag(hViewholder);    }    else    {        hViewholder=(Viewholder) convertView.getTag();    }    hViewholder.tv.setText(list.get(position).title);    hViewholder.cb.setChecked(getIsSelected().get(position));    return convertView;}public static class Viewholder{    private TextView tv;CheckBox cb;}

}

0 0
原创粉丝点击