全选 反选
来源:互联网 发布: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;}
}
- javascript全选 反选
- 全选,反选代码
- 全选反选
- jquery全选反选
- CListCtrl全选、反选
- jquery 全选反选
- CheckBoxList 全选,反选
- JS全选,反选
- Jquery 全选、反选
- javascript 全选 反选
- 全选和反选
- checkbox全选反选
- 全选与反选
- jquery -全选/反选
- 全选、反选
- js 全选 ,反选
- 全选反选
- 全选,反选,全不选
- opencv的矩阵运算
- 高德地图 - 定位
- ES6学习笔记(五)Set和Map数据结构
- 小白胡说:Servlet中doGet和doPost两种请求方式的区别
- 与音频相关的技术知识点总结(Linux方向的开发)
- 全选 反选
- OpenGl shader 初次上手
- Codevs 1137 计算系数 2011年NOIP全国联赛提高组
- 《Effect C++》学习------条款24 :若所有参数皆须类型转换,请为此采用non-member函数
- 给自己立个falg
- 《Effect C++》学习------条款25:考虑写出一个不抛出异常的swap函数
- matlab调用c,mex的 mexw64 不是有效的 Win32 应用程序
- 在Linux下安装vnc服务器
- Python中有关函数作为一个函数的返回值(闭包)