日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

android 自定义baseadapter listview,android之ListView和BaseAdapter的组合使用

發布時間:2023/12/2 编程问答 42 豆豆
生活随笔 收集整理的這篇文章主要介紹了 android 自定义baseadapter listview,android之ListView和BaseAdapter的组合使用 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

BaseAdapter是基本適配器,功能強大,凡是能用ArrayAdapter和SimpleAdapter解決的,都可以使用BaseAdapter解決。

BaseAdapter是一個抽象類,所以需要自定義一個類來繼承BaseAdapter。BaseAdapter中所必須重寫的方法的意義:

public int getCount():在此適配器中所代表的數據集中的條目數

public Object getItem(int position):獲取數據集中與指定索引對應的數據項

public long getItemId(int position):取在列表中與指定索引對應的行id

public View getView(int position, View convertView, ViewGroup parent):很重要的一個方法。在ListView上顯示的數據的邏輯就是寫在這個方法里。

BaseAdapterListViewActivity2.java中的內容package?com.zzh.day_listview;

import?java.util.ArrayList;

import?java.util.List;

import?android.app.Activity;

import?android.os.Bundle;

import?android.view.View;

import?android.view.ViewGroup;

import?android.widget.BaseAdapter;

import?android.widget.ImageView;

import?android.widget.ListView;

import?android.widget.TextView;

/**實現圖片文字混合顯示

*?@author?Administrator

*

*/

public?class?BaseAdapterListViewActivity2?extends?Activity

{

ListView?lv;

List?list?=?new?ArrayList();

@Override

protected?void?onCreate(Bundle?savedInstanceState)

{

//?TODO?Auto-generated?method?stub

super.onCreate(savedInstanceState);

setContentView(R.layout.base_listview);

//?初始化list集合。

for?(int?i?=?0;?i?

{

list.add("item?--??"?+?i);

}

lv?=?(ListView)?findViewById(R.id.listView1);

lv.setAdapter(new?CustomBaseAdapter());

}

class?CustomBaseAdapter?extends?BaseAdapter

{

@Override

public?int?getCount()//返回的是集合的大小

{

return?list.size();

}

@Override

public?Object?getItem(int?position)//返回的是第一個對象

{

return?list.get(position);

}

@Override

public?long?getItemId(int?position)

{

return?0;

}

@Override

public?View?getView(int?position,?View?convertView,?ViewGroup?parent)

{

ViewHolder?vh?;

//優化

if(convertView?==?null)

{

//因為系統已經默認將R.layout.base_listview_item中的控件添加到了父控件中了,所以寫null.

convertView?=?getLayoutInflater().inflate(R.layout.base_listview_item,?null);

vh?=?new?ViewHolder();

vh.iv?=?(ImageView)?convertView.findViewById(R.id.p_w_picpathView1);

vh.tv?=?(TextView)?convertView.findViewById(R.id.textView1);

convertView.setTag(vh);//將vh存起來,以達到代碼優化的效果。

}else

{

vh?=?(ViewHolder)?convertView.getTag();

}

vh.iv.setImageResource(R.drawable.ic_launcher);

vh.tv.setText(list.get(position));

return?convertView;

}

class?ViewHolder{

TextView?tv;

ImageView?iv;

}

}

}

base_listview.xml中的內容:<?xml ?version="1.0"?encoding="utf-8"?>

android:layout_width="match_parent"

android:layout_height="match_parent"?>

android:id="@+id/listView1"

android:layout_width="match_parent"

android:layout_height="wrap_content"

android:layout_alignParentTop="true"?>

base_listview_item.xml中的內容:<?xml ?version="1.0"?encoding="utf-8"?>

android:layout_width="match_parent"

android:layout_height="match_parent"?>

android:id="@+id/p_w_picpathView1"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:layout_alignParentLeft="true"

android:layout_alignParentTop="true"?/>

android:id="@+id/textView1"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:layout_alignParentRight="true"

android:layout_alignParentTop="true"

android:text="TextView"?/>

效果圖:

源代碼下載鏈接:

創作挑戰賽新人創作獎勵來咯,堅持創作打卡瓜分現金大獎

總結

以上是生活随笔為你收集整理的android 自定义baseadapter listview,android之ListView和BaseAdapter的组合使用的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。