listview中-全選-單選-多選

1.佈局

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical"
    tools:context=".MainActivity" >

    <Button
        android:id="@+id/button1"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="全選" />

    <ListView
        android:id="@+id/lv_main_listview"
        android:layout_width="match_parent"
        android:layout_height="fill_parent"
        android:divider="#000"
        android:dividerHeight="1dp" >
    </ListView>

</LinearLayout>

2.item佈局

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="horizontal" >

    <TextView
        android:id="@+id/tname"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_weight="3"
        android:gravity="left"
        android:layout_marginTop="20dp"
        android:text="TextView" />

    <ImageView
        android:id="@+id/imageView1"
        android:layout_width="30dp"
        android:layout_height="30dp"
        android:layout_weight="1"
        android:gravity="center"
        android:layout_marginTop="15dp"
        android:src="@drawable/ic_checkbox_normal" />

</LinearLayout>

3.bean包

package com.bwei.vo;

public class Person {
    //選中
    public static final int SELECT=1;
    //未選中
    public static final int NO_SELECT=0;
    //默認
    public static final int DEFAULT=2;
    
    public String name;
    public int age;
    public int statue; // 0未選中,1選中,2默認沒選中

}


4.adapter適配器

package com.bwei.adapter;

import java.util.ArrayList;
import java.util.List;

import org.apache.http.impl.client.DefaultHttpClient;

import com.bwei.main.R;
import com.bwei.vo.Person;


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

public class MyAdapter extends BaseAdapter {

    List<Person> plist=new ArrayList<Person>();
    
    Context context;
    public MyAdapter(Context context) {
        this.context=context;
    }

    public void addrest(List<Person> plist){
        this.plist.clear();
        this.plist.addAll(plist);
        this.notifyDataSetChanged();
    }
    @Override
    public int getCount() {
        // TODO Auto-generated method stub
        return plist.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(int position, View convertView, ViewGroup parent) {
        ViewHolder holder;
        if(convertView==null){
            holder=new ViewHolder();
            convertView=View.inflate(context, R.layout.lv_item, null);
            holder.imageView1=(ImageView) convertView.findViewById(R.id.imageView1);
            holder.tname=(TextView) convertView.findViewById(R.id.tname);
            convertView.setTag(holder);
        }else{
            holder=(ViewHolder) convertView.getTag();
        }
        holder.tname.setText(plist.get(position).name);
        switch(plist.get(position).statue){
        case Person.NO_SELECT://沒有選中
            //取消選中
            holder.imageView1.setImageResource(R.drawable.ic_checkbox_normal);
            break;
        case Person.SELECT://選中
            //設置選中
            holder.imageView1.setImageResource(R.drawable.hookicon_repost_pressed);
            break;
        case Person.DEFAULT://默認沒有選中
            //取消選中
            holder.imageView1.setImageResource(R.drawable.ic_checkbox_normal);
            break;    
            default:
            break;
        }
        
        return convertView;
    }
    class ViewHolder {
        TextView tname;
        ImageView imageView1;
    }

}

5.MainActivity主類

package com.bwei.main;

import java.util.ArrayList;
import java.util.List;

import com.bwei.adapter.MyAdapter;
import com.bwei.vo.Person;

import android.os.Bundle;
import android.app.Activity;
import android.view.Menu;
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;

public class MainActivity extends Activity implements OnClickListener, OnItemClickListener {

    private Button button1;
    private ListView lv_main_listview;
    private MyAdapter adapter;
    List<Person> plist=new ArrayList<Person>();
    // 是不是全部選中
    boolean isall = true;
    
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        //控件
        button1 = (Button)findViewById(R.id.button1);
        lv_main_listview = (ListView)findViewById(R.id.lv_main_listview);
        //適配器
        adapter=new MyAdapter(getApplicationContext());
        lv_main_listview.setAdapter(adapter);
        //監聽事件
        button1.setOnClickListener(this);
        lv_main_listview.setOnItemClickListener(this);
        
        for (int i = 0; i < 10; i++) {

            Person person = new Person();
            person.age = i;
            person.name = "李明" + i;
            person.statue = Person.DEFAULT;
            plist.add(person);
        }
        
        adapter.addrest(plist);
    }


    @Override
    public void onItemClick(AdapterView<?> parent, View view, int position,
            long id) {
        if(plist.get(position).statue == 0){
            //未選中
            plist.get(position).statue = Person.SELECT;
        }else{
            //選中
            plist.get(position).statue = Person.NO_SELECT;
        }
        
        adapter.addrest(plist);
        
    }


    @Override
    public void onClick(View v) {
        switch(v.getId()){
        case R.id.button1:
            for(Person person:plist){
                if(isall==true){
                    //選中
                    person.statue = Person.SELECT;    
                    
                }else{
                    //設置全部不選中
                    person.statue = Person.NO_SELECT;                
                }    
            }
            if(isall==true){
                isall=false;
            }else{
                //設置爲全部不選中
                isall=true;
            }
            adapter.addrest(plist);
            break;
            
        }
        
    }



    
}



發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章