package com.bwei.test;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.net.HttpURLConnection;
import java.net.MalformedURLException;
import java.net.URL;
import java.util.ArrayList;
import org.apache.http.HttpConnection;
import com.bwie.Bean.Bean;
import com.bwie.Bean.Data;
import com.google.gson.Gson;
import android.support.v7.app.ActionBarActivity;
import android.os.Bundle;
import android.os.Handler;
import android.os.Message;
import android.view.View;
import android.widget.Button;
import android.widget.ListView;
public class MainActivity extends ActionBarActivity {
String jiekou=”http://121.42.8.95:8090/AndroidServer/yk.json”;
private ListView lv;
private ArrayList list;
private Button bt;
private MyAdapter adapter;
boolean i=true;
Handler handler=new Handler(){
public void handleMessage(android.os.Message msg) {
Bean bean=(Bean) msg.obj;
list=bean.getData();
adapter=new MyAdapter(MainActivity.this, list);
lv.setAdapter(adapter);
};
};
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
bt=(Button) findViewById(R.id.bt1);
lv=(ListView) findViewById(R.id.lv);
getData();
}
private void getData() {
// TODO Auto-generated method stub
new Thread(){
public void run() {
try {
URL url=new URL(jiekou);
HttpURLConnection conn= (HttpURLConnection) url.openConnection();
InputStream input=conn.getInputStream();
Gson gson=new Gson();
Bean bean = gson.fromJson(new InputStreamReader(input),Bean.class);
Message msg=new Message();
msg.obj=bean;
handler.sendMessage(msg);
} catch (MalformedURLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
};
}.start();
}
public void xuanze(View v){
if (i) {
for (Data d :list) {
d.setCheck(true);
}
i=false;
bt.setText(“取消”);
}else{
for (Data d :list) {
d.setCheck(false);
}
i=true;
bt.setText(“全选”);
}
adapter.notifyDataSetChanged();
}
public void delete(View v){
for (int j = 0; j < list.size(); j++) {
Data d=list.get(j);
if (d.isCheck()) {
list.remove(j);
j--;
}
}
adapter.notifyDataSetInvalidated();
}
}
MyAdapter
package com.bwei.test;
import java.util.ArrayList;
import com.bwie.Bean.Data;
import android.content.Context;
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.TextView;
public class MyAdapter extends BaseAdapter {
private Context context;
private ArrayList list;
public MyAdapter(Context context,ArrayList<Data> list){
super();
this.context=context;
this.list=list;
}
@Override
public int getCount() {
// TODO Auto-generated method stub
return list.size();
}
@Override
public Object getItem(int position) {
// TODO Auto-generated method stub
return null;
}
@Override
public long getItemId(int position) {
// TODO Auto-generated method stub
return 0;
}
@Override
public View getView(final int position, View convertView, ViewGroup parent) {
// TODO Auto-generated method stub
ViewHolder holder;
if (convertView==null) {
holder=new ViewHolder();
convertView=View.inflate(context, R.layout.item,null);
holder.tv1=(TextView) convertView.findViewById(R.id.tv_name);
holder.tv2=(TextView) convertView.findViewById(R.id.tv_time);
holder.cb=(CheckBox) convertView.findViewById(R.id.cb);
convertView.setTag(holder);
}else {
holder=(ViewHolder) convertView.getTag();
}
holder.tv1.setText(list.get(position).getChannelName());
holder.tv2.setText(list.get(position).getCreateDate());
holder.cb.setChecked(list.get(position).isCheck());
holder.cb.setOnCheckedChangeListener(new OnCheckedChangeListener() {
@Override
public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
// TODO Auto-generated method stub
if (isChecked) {
list.get(position).setCheck(true);
}else {
list.get(position).setCheck(false);
}
}
});
return convertView;
}
class ViewHolder{
private TextView tv1,tv2;
private CheckBox cb;
}
}