Android教程網
  1. 首頁
  2. Android 技術
  3. Android 手機
  4. Android 系統教程
  5. Android 游戲
 Android教程網 >> Android技術 >> 關於Android編程 >> android項目 之 來電管家(2) ----- ListView+CheckBox的使用

android項目 之 來電管家(2) ----- ListView+CheckBox的使用

編輯:關於Android編程

上一節,已經完成了來電管家的界面設計,那麼下面就要實現具體的功能了,如何將添加的黑白名單顯示呢?這裡用到了ListView,那麼,如果需要刪除黑白名單呢,是一個個長按彈出菜單刪除,還是將所的黑白名單清空呢,這都不符合用戶的需求,往往,都是刪除多個,這就有個問題了,如何在ListView中刪除指定的多個item呢??可能大家想到了,要用到CheckBox。

先看圖:

\\

可以看出,當處於刪除模式時,底部按鈕也變成了刪除與返回,中間也顯示了當前共選擇了多少項,而且在ListView的每一個Item右邊也顯示出了CheckBox,用於多選。

這一節,只實現如何顯示,並且為ListView添加監聽器,下節再實現的黑白名單的增加與刪除。

黑白名單的布局文件上一節已給出,還有listView中的item的布局文件list_item.xml,用到了控件的隱藏與顯示,效果如上圖所示:

list_item.xml



    
    
      
    
        
    
    
    
    
        



既然用到了ListView,必然要有Adapter,這裡依然采用的是BaseAdapter,主要代碼如下:

 class Adapter extends BaseAdapter{
        private Context context;
        private LayoutInflater inflater=null;
        private HashMap mView ;
        public  HashMap visiblecheck ;//用來記錄是否顯示checkBox
        public  HashMap ischeck;
        private TextView txtcount;

        public Adapter(Context context,TextView txtcount)
        {
            this.context = context;
            this.txtcount = txtcount;
            inflater = (LayoutInflater)context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
            mView = new HashMap();
            visiblecheck = new HashMap();
            ischeck      = new HashMap();
            if(isMulChoice){
                for(int i=0;i

其中的Onlongclick是給ListView的item添加長按監聽器,實現彈出CheckBox,及底部刪除按鈕的功能。這裡面用到了控件的隱藏與顯示,剩下的就是控件的聲明與定義。並為ListView綁定監聽器。

	private List array = new ArrayList();
    	private List selectid = new ArrayList();
	private ListView lv_show;
	private CheckBox cb;
	private TextView tv_count;
	private RelativeLayout add_layout;
	private RelativeLayout delete_layout;
	private Adapter adapter;

其中Person是自定義的類:

Person.java

public class Person {
	 String name;
	 String number;
	 int id;
	public Person(int id,String name,String number) {
		this.id = id;
		this.name = name;
		this.number = number;
	}
}

    tv_count = (TextView)findViewById(R.id.tv_select);   
    add_layout = (RelativeLayout)findViewById(R.id.add_layout);
    delete_layout = (RelativeLayout)findViewById(R.id.delete_layout);
    lv_show = (ListView)findViewById(R.id.lv_show);

這裡只是主要的代碼,完整的代碼我會打包上傳的。

  1. 上一頁:
  2. 下一頁:
熱門文章
閱讀排行版
Copyright © Android教程網 All Rights Reserved