![【移動(dòng)應(yīng)用開(kāi)發(fā)技術(shù)】Android中怎么實(shí)現(xiàn)帶圖片和checkbox的listview_第1頁(yè)](http://file4.renrendoc.com/view/9a6820ccf8e1672ddf66997eebf90244/9a6820ccf8e1672ddf66997eebf902441.gif)
![【移動(dòng)應(yīng)用開(kāi)發(fā)技術(shù)】Android中怎么實(shí)現(xiàn)帶圖片和checkbox的listview_第2頁(yè)](http://file4.renrendoc.com/view/9a6820ccf8e1672ddf66997eebf90244/9a6820ccf8e1672ddf66997eebf902442.gif)
![【移動(dòng)應(yīng)用開(kāi)發(fā)技術(shù)】Android中怎么實(shí)現(xiàn)帶圖片和checkbox的listview_第3頁(yè)](http://file4.renrendoc.com/view/9a6820ccf8e1672ddf66997eebf90244/9a6820ccf8e1672ddf66997eebf902443.gif)
下載本文檔
版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
【移動(dòng)應(yīng)用開(kāi)發(fā)技術(shù)】Android中怎么實(shí)現(xiàn)帶圖片和checkbox的listview
這篇文章給大家介紹Android中怎么實(shí)現(xiàn)帶圖片和checkbox的listview,內(nèi)容非常詳細(xì),感興趣的小伙伴們可以參考借鑒,希望對(duì)大家能有所幫助。先新建一個(gè)MyAdapter類(lèi),繼承自BaseAdapter。在MyAdapter中實(shí)現(xiàn)對(duì)數(shù)據(jù)的綁定,我這兒由于是測(cè)試的,所以把數(shù)據(jù)寫(xiě)死了。Java代碼
package
com.zwq.umeng;
import
java.util.ArrayList;
import
java.util.HashMap;
import
java.util.List;
import
java.util.Map;
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.ImageView;
import
android.widget.TextView;
public
class
MyAdapter
extends
BaseAdapter
{
private
LayoutInflater
mInflater;
private
List<Map<String,
Object>>
mData;
public
static
Map<Integer,
Boolean>
isSelected;
public
MyAdapter(Context
context)
{
mInflater
=
LayoutInflater.from(context);
init();
}
//初始化
private
void
init()
{
mData=new
ArrayList<Map<String,
Object>>();
for
(int
i
=
0;
i
<
5;
i++)
{
Map<String,
Object>
map
=
new
HashMap<String,
Object>();
map.put("img",
R.drawable.icon);
map.put("title",
"第"
+
(i
+
1)
+
"行的標(biāo)題");
mData.add(map);
}
//這兒定義isSelected這個(gè)map是記錄每個(gè)listitem的狀態(tài),初始狀態(tài)全部為false。
isSelected
=
new
HashMap<Integer,
Boolean>();
for
(int
i
=
0;
i
<
mData.size();
i++)
{
isSelected.put(i,
false);
}
}
@Override
public
int
getCount()
{
return
mData.size();
}
@Override
public
Object
getItem(int
position)
{
return
null;
}
@Override
public
long
getItemId(int
position)
{
return
0;
}
@Override
public
View
getView(int
position,
View
convertView,
ViewGroup
parent)
{
ViewHolder
holder
=
null;
//convertView為null的時(shí)候初始化convertView。
if
(convertView
==
null)
{
holder
=
new
ViewHolder();
convertView
=
mInflater.inflate(R.layout.vlist,
null);
holder.img
=
(ImageView)
convertView.findViewById(R.id.img);
holder.title
=
(TextView)
convertView.findViewById(R.id.title);
holder.cBox
=
(CheckBox)
convertView.findViewById(R.id.cb);
convertView.setTag(holder);
}
else
{
holder
=
(ViewHolder)
convertView.getTag();
}
holder.img.setBackgroundResource((Integer)
mData.get(position).get(
"img"));
holder.title.setText(mData.get(position).get("title").toString());
holder.cBox.setChecked(isSelected.get(position));
return
convertView;
}
public
final
class
ViewHolder
{
public
ImageView
img;
public
TextView
title;
public
CheckBox
cBox;
}
}上面類(lèi)中要注意getView()方法中對(duì)數(shù)據(jù)的處理。接下要新建一個(gè)list.xml文件,這個(gè)就是布局image、textview、checkbox。Java代碼
<?xml
version="1.0"
encoding="utf-8"?>
<LinearLayout
xmlns:android="/apk/res/android"
android:orientation="horizontal"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
>
<ImageView
android:id="@+id/img"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"/>
<TextView
android:id="@+id/title"
android:textSize="18dip"
android:layout_weight="1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"/>
<CheckBox
android:id="@+id/cb"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:focusable="false"
android:focusableInTouchMode="false"
android:clickable="false"
android:checkMark="?android:attr/listChoiceIndicatorMultiple"/>
</LinearLayout>android:layout_weight="1"這一句可以使中間的textview權(quán)重增大,從而后面的checkbok可以居右顯示。android:focusable="false"
android:focusableInTouchMode="false"
android:clickable="false"這三句很重要,如果不加就會(huì)出現(xiàn)錯(cuò)誤。由于checkbox的點(diǎn)擊事件優(yōu)先級(jí)比listview的高,所以要在checkbox中添加android:focusable="false",使得checkbox初始的時(shí)候沒(méi)有獲取焦點(diǎn)。接下來(lái)在main.xml中添加Listview組件Java代碼<ListView
android:id="@+id/lv"
android:layout_width="fill_parent"
android:layout_height="wrap_content"/>接下來(lái)就是在activity中調(diào)用:Java代碼list=(ListView)findViewById(R.id.lv);
MyAdapter
adapter=new
MyAdapter(this);
list.setAdapter(adapter);
list.setItemsCanFocus(false);
list.setChoiceMode(ListView.CHOICE_MODE_MULTIPLE);
list.setOnItemClickListener(new
OnItemClickListener(){
@Override
public
void
onItemClick(AdapterView<?>
parent,
View
view,
int
position,
long
id)
{
ViewHolder
vHollder
=
(ViewHolder)
view.getTag();
//在每次獲取點(diǎn)擊的item時(shí)將對(duì)于的checkbox狀態(tài)改變,同時(shí)修改map的值。
vHollder.cBox.toggle();
MyAdapter.isSelected.put(position,
vHollder.cBox.isChecked());
}
});***看一下效果圖:要獲取哪些項(xiàng)目被選擇了,可以這樣測(cè)試:Java代碼OnClickListener
bPop
=
new
OnClickListener()
{
@Override
public
void
onClick(View
v)
{
for(int
i=0;i<list.getCount();i++){
if(MyAdapter.isSelected.get(i)){
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年的合同延續(xù)與權(quán)利轉(zhuǎn)讓協(xié)議樣本
- 2025年企業(yè)租賃新能源汽車(chē)合作合同
- 2025年企業(yè)市場(chǎng)營(yíng)銷(xiāo)策劃委托協(xié)議書(shū)樣本
- 2025年合作伙伴店鋪聯(lián)合經(jīng)營(yíng)協(xié)議
- 2025年共發(fā)展合作協(xié)議示例
- 2025年居民小區(qū)消防系統(tǒng)設(shè)計(jì)申請(qǐng)與施工協(xié)議
- 2025年先進(jìn)技術(shù)許可合同規(guī)范模板
- 2025年全球貿(mào)易增長(zhǎng)與多邊合作協(xié)議
- 2025年協(xié)作一致行動(dòng)人協(xié)議樣本
- 2025年大型卡車(chē)租賃服務(wù)合同
- 《萬(wàn)以內(nèi)數(shù)的認(rèn)識(shí)》大單元整體設(shè)計(jì)
- 中醫(yī)護(hù)理質(zhì)量敏感指標(biāo)的構(gòu)建
- 聚焦幼兒作品分析的游戲觀察與評(píng)價(jià)
- 創(chuàng)傷性腦疝查房
- 農(nóng)村常見(jiàn)傳染病預(yù)防知識(shí)講座
- XX醫(yī)院網(wǎng)絡(luò)及設(shè)備巡檢記錄表
- 開(kāi)龍IT2021使用手冊(cè)
- 《趙匡胤:北宋的開(kāi)國(guó)皇帝》
- 蒸壓加氣混凝土砌塊干燥收縮檢測(cè)記錄11969-2020
- 2023-2024學(xué)年第二學(xué)期人教版英語(yǔ)五年級(jí)教學(xué)計(jì)劃(含進(jìn)度表)
- 負(fù)債質(zhì)量管理辦法
評(píng)論
0/150
提交評(píng)論