首页 > 代码库 > android开发最常用例子整理----(3)自定义ListView(自定义BaseAdapter实现)

android开发最常用例子整理----(3)自定义ListView(自定义BaseAdapter实现)

        在上一个教程中,我们使用SimpleAdapter实现自定义ListView,但是有一点不方便的是,如果要对每一个ListView的item选项进行不同的样式设置,就很麻烦,因为SimpleAdapter使用的是统一的风格样式。如果要实现不同item使用不同的风格样式,那么就要通过集成BaseAdapter来实现。

一、Activity

MainActivity.java源码:

技术分享

public class MainActivity extends Activity {
	
	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_main);
		//Step1
		String[] contentArray = new String[]{"内容1","内容2","内容3","内容4","内容5"};
		ListView lv = (ListView)findViewById(R.id.lv);
		
		//Step2
		ArrayList<HashMap<String,Object>> data = http://www.mamicode.com/new ArrayList>();>

二、xml布局文件

技术分享
(1)MainActivity主界面的布局源码activity_main.xml:
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical" >

    <ListView
	    android:id="@+id/lv"
 		android:layout_width="match_parent"     
		android:layout_height="wrap_content"/>

</LinearLayout>
(2)ListView列表单元的布局源码list_item.xml:
<?xml version="1.0" encoding="utf-8" ?>
 <LinearLayout 
    xmlns:android="http://schemas.android.com/apk/res/android"
	android:layout_height="match_parent" 
	android:layout_width="match_parent"
	android:gravity="center_vertical"
	android:orientation="horizontal"> 
	
      <LinearLayout 
        android:layout_width="0dp"
        android:layout_height="wrap_content"
		android:layout_weight="2"
		android:gravity="center_vertical"
		android:orientation="vertical">
          <TextView
              android:id="@+id/startTimeText"
              android:layout_height="wrap_content"
			  android:layout_width="match_parent"/>
          <TextView
              android:id="@+id/endTimeText"
              android:layout_height="wrap_content"
			  android:layout_width="match_parent"/>
      </LinearLayout>
      
	<ImageView 
	    android:id="@+id/separator"
	    android:layout_weight="1"
 	    android:layout_width="0dp"
		android:layout_height="wrap_content" 
		/> 

	 <TextView
	    android:id="@+id/content" 
 	    android:layout_width="0dp"
	    android:layout_height="wrap_content" 
		android:layout_weight="12"/> 
</LinearLayout>

三、相关资源

res/drawable-mdpi/下的文件:

技术分享

技术分享 separator1.png   技术分享separator2.png    技术分享separator3.png     技术分享separator4.png     技术分享separator5.png


四、效果截图


技术分享

android开发最常用例子整理----(3)自定义ListView(自定义BaseAdapter实现)