900字范文,内容丰富有趣,生活中的好帮手!
900字范文 > android 自定义baseadapter listview android之ListView和BaseAdapter的组合使用

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

时间:2018-07-17 06:28:05

相关推荐

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中的内容packagecom.zzh.day_listview;

importjava.util.ArrayList;

importjava.util.List;

importandroid.app.Activity;

importandroid.os.Bundle;

importandroid.view.View;

importandroid.view.ViewGroup;

importandroid.widget.BaseAdapter;

importandroid.widget.ImageView;

importandroid.widget.ListView;

importandroid.widget.TextView;

/**实现图片文字混合显示

*@authorAdministrator

*

*/

publicclassBaseAdapterListViewActivity2extendsActivity

{

ListViewlv;

Listlist=newArrayList();

@Override

protectedvoidonCreate(BundlesavedInstanceState)

{

//TODOAuto-generatedmethodstub

super.onCreate(savedInstanceState);

setContentView(R.layout.base_listview);

//初始化list集合。

for(inti=0;i

{

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

}

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

lv.setAdapter(newCustomBaseAdapter());

}

classCustomBaseAdapterextendsBaseAdapter

{

@Override

publicintgetCount()//返回的是集合的大小

{

returnlist.size();

}

@Override

publicObjectgetItem(intposition)//返回的是第一个对象

{

returnlist.get(position);

}

@Override

publiclonggetItemId(intposition)

{

return0;

}

@Override

publicViewgetView(intposition,ViewconvertView,ViewGroupparent)

{

ViewHoldervh;

//优化

if(convertView==null)

{

//因为系统已经默认将R.layout.base_listview_item中的控件添加到了父控件中了,所以写null.

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

vh=newViewHolder();

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));

returnconvertView;

}

classViewHolder{

TextViewtv;

ImageViewiv;

}

}

}

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"/>

效果图:

源代码下载链接:

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。