亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 系統 > Android > 正文

Android checkbox的listView具體操作方法

2020-04-11 11:09:03
字體:
來源:轉載
供稿:網友

本文主要實現在自定義的ListView布局中加入CheckBox控件,通過判斷用戶是否選中CheckBox來對ListView的選中項進行相應的操作。通過一個Demo來展示該功能,選中ListView中的某一項,然后點擊Button按鈕來顯示選中了哪些項。
1、程序結構圖如下:

其中Person.java是實體類,MainActivity.java是Activity組件類。listitem.xml是自定義的列表每項布局文件。
2、listitem.xml布局文件源碼如下:

<?xml version="1.0" encoding="utf-8"?> <LinearLayout  xmlns:android="http://schemas.android.com/apk/res/android"  android:orientation="vertical"  android:layout_width="fill_parent"  android:layout_height="fill_parent">  <LinearLayout   android:layout_width="fill_parent"   android:layout_height="wrap_content"   android:orientation="horizontal"   android:descendantFocusability="blocksDescendants">   <CheckBox    android:id="@+id/list.select"    android:layout_width="wrap_content"    android:layout_height="wrap_content"/>   <TextView    android:id="@+id/list.name"    android:layout_width="fill_parent"    android:layout_height="wrap_content"    android:layout_weight="1"    android:text="Name"    android:layout_gravity="center"    android:textSize="20dp"    android:layout_marginLeft="10dp"/>   <TextView    android:id="@+id/list.address"    android:layout_width="fill_parent"    android:layout_height="wrap_content"    android:layout_weight="1"    android:text="Address"    android:layout_gravity="center"    android:textSize="20dp"/>  </LinearLayout> </LinearLayout> 

3、 main.xml布局文件源碼如下:

<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"  android:orientation="vertical"  android:layout_width="fill_parent"  android:layout_height="fill_parent">  <Button   android:id="@+id/show"   android:layout_width="fill_parent"   android:layout_height="wrap_content"   android:text="Show"/>  <ListView   android:id="@+id/lvperson"   android:layout_width="fill_parent"   android:layout_height="fill_parent"/> </LinearLayout> 

4、Person.java實體類源碼如下:

package com.andyidea.bean;  public class Person {   private String name;  private String address;    public String getName() {   return name;  }  public void setName(String name) {   this.name = name;  }  public String getAddress() {   return address;  }  public void setAddress(String address) {   this.address = address;  }   } 

5、MainActivity.java類源碼如下:

package com.andyidea.listview;  import java.util.ArrayList; import java.util.HashMap; import java.util.List;  import com.andyidea.bean.Person;  import android.app.Activity; import android.app.AlertDialog; import android.content.Context; import android.os.Bundle; import android.util.Log; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.widget.BaseAdapter; import android.widget.Button; import android.widget.CheckBox; import android.widget.ListView; import android.widget.TextView;  public class MainActivity extends Activity {    Button show;  ListView lv;  List<Person> persons = new ArrayList<Person>();  Context mContext;  MyListAdapter adapter;  List<Integer> listItemID = new ArrayList<Integer>();    /** Called when the activity is first created. */  @Override  public void onCreate(Bundle savedInstanceState) {   super.onCreate(savedInstanceState);   setContentView(R.layout.main);   mContext = getApplicationContext();   show = (Button)findViewById(R.id.show);   lv = (ListView)findViewById(R.id.lvperson);      initPersonData();   adapter = new MyListAdapter(persons);   lv.setAdapter(adapter);      show.setOnClickListener(new View.OnClickListener() {     @Override    public void onClick(View v) {          listItemID.clear();     for(int i=0;i<adapter.mChecked.size();i++){      if(adapter.mChecked.get(i)){       listItemID.add(i);      }     }          if(listItemID.size()==0){      AlertDialog.Builder builder1 = new AlertDialog.Builder(MainActivity.this);      builder1.setMessage("沒有選中任何記錄");      builder1.show();     }else{      StringBuilder sb = new StringBuilder();            for(int i=0;i<listItemID.size();i++){       sb.append("ItemID="+listItemID.get(i)+" . ");      }      AlertDialog.Builder builder2 = new AlertDialog.Builder(MainActivity.this);      builder2.setMessage(sb.toString());      builder2.show();     }    }   });  }    /**   * 模擬數據   */  private void initPersonData(){   Person mPerson;   for(int i=1;i<=12;i++){    mPerson = new Person();    mPerson.setName("Andy"+i);    mPerson.setAddress("GuangZhou"+i);    persons.add(mPerson);   }  }    //自定義ListView適配器  class MyListAdapter extends BaseAdapter{   List<Boolean> mChecked;   List<Person> listPerson;   HashMap<Integer,View> map = new HashMap<Integer,View>();      public MyListAdapter(List<Person> list){    listPerson = new ArrayList<Person>();    listPerson = list;        mChecked = new ArrayList<Boolean>();    for(int i=0;i<list.size();i++){     mChecked.add(false);    }   }    @Override   public int getCount() {    return listPerson.size();   }    @Override   public Object getItem(int position) {    return listPerson.get(position);   }    @Override   public long getItemId(int position) {    return position;   }    @Override   public View getView(int position, View convertView, ViewGroup parent) {    View view;    ViewHolder holder = null;        if (map.get(position) == null) {     Log.e("MainActivity","position1 = "+position);          LayoutInflater mInflater = (LayoutInflater) mContext       .getSystemService(Context.LAYOUT_INFLATER_SERVICE);     view = mInflater.inflate(R.layout.listitem, null);     holder = new ViewHolder();     holder.selected = (CheckBox)view.findViewById(R.id.list_select);     holder.name = (TextView)view.findViewById(R.id.list_name);     holder.address = (TextView)view.findViewById(R.id.list_address);     final int p = position;     map.put(position, view);     holder.selected.setOnClickListener(new View.OnClickListener() {            @Override      public void onClick(View v) {       CheckBox cb = (CheckBox)v;       mChecked.set(p, cb.isChecked());      }     });     view.setTag(holder);    }else{     Log.e("MainActivity","position2 = "+position);     view = map.get(position);     holder = (ViewHolder)view.getTag();    }        holder.selected.setChecked(mChecked.get(position));    holder.name.setText(listPerson.get(position).getName());    holder.address.setText(listPerson.get(position).getAddress());        return view;   }     }    static class ViewHolder{   CheckBox selected;   TextView name;   TextView address;  } } 

程序運行后的結果如下:

希望本文所述對大家學習Android軟件編程有所幫助。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
日韩高清有码在线| 久久亚洲欧美日韩精品专区| 精品国产一区二区三区在线观看| 91亚洲精品一区二区| 高清欧美性猛交| 欧美情侣性视频| 日韩成人中文电影| 日韩精品免费看| 狠狠躁夜夜躁人人躁婷婷91| 亚洲国产一区二区三区四区| 日韩欧美aⅴ综合网站发布| 91国内揄拍国内精品对白| xvideos成人免费中文版| 韩国精品美女www爽爽爽视频| 国产精品视频yy9099| 成人免费xxxxx在线观看| 成人a免费视频| 国产精品极品美女粉嫩高清在线| 精品国产一区二区三区四区在线观看| 日本精品性网站在线观看| 日韩av电影免费观看高清| 欧美乱大交做爰xxxⅹ性3| 2019中文字幕免费视频| 日韩欧美福利视频| 韩国精品久久久999| 欧美成人一二三| 国产成人综合久久| 第一福利永久视频精品| 日韩女优人人人人射在线视频| 色av中文字幕一区| 欧美日韩国产一区二区三区| www.亚洲一区| 国产精品一区二区三区久久久| 久久亚洲一区二区三区四区五区高| 久久久国产精品免费| 久久久精品中文字幕| 色偷偷偷亚洲综合网另类| 欧美成人精品在线观看| 成人a在线视频| 久久视频在线观看免费| 一区二区三区四区视频| 亚洲激情免费观看| 97视频在线观看网址| 久久人人看视频| 日本不卡高字幕在线2019| 亚洲欧美日韩中文在线制服| 日本精品视频在线| 久久久免费电影| 精品国产欧美成人夜夜嗨| 欧美视频在线视频| 日日噜噜噜夜夜爽亚洲精品| 国产日韩精品视频| 欧美另类69精品久久久久9999| 久久人人爽人人爽人人片av高请| 久久久91精品国产| 国产+成+人+亚洲欧洲| 国产美女被下药99| 国产一区二区三区视频| 欧美视频在线免费看| 欧美黑人性生活视频| 日韩乱码在线视频| 国产在线精品成人一区二区三区| 精品久久久久久中文字幕一区奶水| 日韩美女免费视频| 中文字幕亚洲无线码在线一区| 午夜精品美女自拍福到在线| 国产精自产拍久久久久久蜜| 成人高清视频观看www| 亚洲第一中文字幕在线观看| 国产精品视频区1| 久久精品国产精品| 亚洲精品视频二区| 97热精品视频官网| 日韩视频中文字幕| 日韩在线www| 在线丨暗呦小u女国产精品| 日韩电影免费观看在线观看| 国产精品一区二区三区在线播放| 97免费视频在线播放| 色噜噜狠狠狠综合曰曰曰88av| 国语自产偷拍精品视频偷| 国产欧美日韩中文字幕在线| 国产精品丝袜高跟| 91高清视频在线免费观看| 中文字幕免费精品一区高清| 亚洲sss综合天堂久久| 在线精品国产成人综合| 亚洲国产成人一区| 久色乳综合思思在线视频| 美女少妇精品视频| 欧美一区二粉嫩精品国产一线天| 性欧美xxxx交| 久久精品男人天堂| 国产第一区电影| 久久久成人精品视频| 欧美精品电影免费在线观看| 国产成人在线视频| 国产精品福利片| 日韩一区二区福利| 中文字幕亚洲第一| 亚洲女人天堂av| 国产午夜精品美女视频明星a级| 国产日韩av高清| 中文字幕日韩精品在线| 亚洲性日韩精品一区二区| 欧美日韩午夜激情| 精品久久久视频| 97精品一区二区三区| 日本国产一区二区三区| 亚洲少妇中文在线| 国产精品露脸av在线| 97视频色精品| 日韩有码在线视频| 亚洲免费成人av电影| 亚洲日本中文字幕| 久久视频在线播放| 国产精品精品视频一区二区三区| 日本19禁啪啪免费观看www| 成人写真视频福利网| 91av网站在线播放| 国产一区二区三区在线观看视频| 欧美性猛交xxxx免费看| 欧美性受xxxx白人性爽| 欧美老少配视频| 欧美成人h版在线观看| 成人欧美一区二区三区黑人孕妇| 国产在线视频2019最新视频| 欧美性黄网官网| 少妇高潮久久77777| 狠狠爱在线视频一区| 欧美另类极品videosbestfree| 欧美性生活大片免费观看网址| 欧美巨猛xxxx猛交黑人97人| 欧美日本精品在线| 国产精品视频永久免费播放| 91国语精品自产拍在线观看性色| 欧美在线一级va免费观看| 国产v综合v亚洲欧美久久| 成人av色在线观看| 亚洲一区二区精品| 亚洲综合在线做性| 欧美一级免费视频| 亚洲乱码国产乱码精品精天堂| 中文字幕精品久久久久| 91精品久久久久久久久中文字幕| 国产精品揄拍一区二区| 国产在线a不卡| 亚洲成av人片在线观看香蕉| 欧美一级大胆视频| 国产欧美日韩免费| 国产精品普通话| 91国产精品91| 亚洲va欧美va国产综合久久| 国产成人精品av| 久久久久久国产| 欧美夫妻性生活xx| 在线视频日本亚洲性| 国产精品久久久久秋霞鲁丝| 国产精品永久免费在线| 亚洲人成电影在线播放| 国产午夜精品视频免费不卡69堂| 国产精品美女久久久久久免费| 操人视频在线观看欧美| 777精品视频|