Android学习 16-> 列表控件ListView

       ListView是Android软件开发中非常重要组件之一,基本上是个软件基本都会使用ListView 

      列表的显示需要三个元素:

      1.ListVeiw 用来展示列表的View。

      2.适配器 用来把数据映射到ListView上的中介。

      3.数据    具体的将被映射的字符串,图片,或者基本组件。 

      在android的开发中最Adapter 一共可以分为:
ArrayAdapter<T>,
BaseAdapter, 
CursorAdapter,
HeaderViewListAdapter, 
ResourceCursorAdapter,
SimpleAdapter,
SimpleCursorAdapter,
WrapperListAdapter

     软件开发中最常用的有ArrayAdapter<T>,BaseAdapter,SimpleAdapter 三种

     注:当然还可以用自定义的适配器继承字BaseAdapter。

       此处以最简单的ArrayAdapter<T>为例写一个简单的ListView:

    其中ListView布局activity_listview_layout.xml文件如下:

<span style="font-size:18px;"><?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent" >

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

</LinearLayout></span>


    Java代码ListViewActivity如下:

<span style="font-size:18px;">package com.sc.android.ui.listview;

import android.app.Activity;
import android.os.Bundle;
import android.widget.ArrayAdapter;
import android.widget.ListView;

import com.sc.android.R;

public class ListsViewActivity extends Activity {

	private String[] array = { "线型布局", "相对布局", "单帧布局", "表格布局", "网格布局",
			"单选,多选布局", "传参练习" };
	private ListView mListView;

	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_listview_layout);

		mListView = (ListView) findViewById(R.id.listsview);

		ArrayAdapter<String> adapter = new ArrayAdapter<String>(this,
				android.R.layout.test_list_item, array);
//		ArrayAdapter<String> adapter = new ArrayAdapter<String>(this,
//		R.layout.list_textview, array);

		mListView.setAdapter(adapter);
	}
}
</span>


    上面代码中注释掉的是引用自定义的单个的View对象布局,而android引用的是系统自带的布局。

   自定义TextView布局list_textview.xml如下:

 

<span style="font-size:18px;">package com.sc.android.ui.listview;

import android.app.Activity;
import android.os.Bundle;
import android.widget.ArrayAdapter;
import android.widget.ListView;

import com.sc.android.R;

public class ListsViewActivity extends Activity {

	private String[] array = { "线型布局", "相对布局", "单帧布局", "表格布局", "网格布局",
			"单选,多选布局", "传参练习" };
	private ListView mListView;

	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_listview_layout);

		mListView = (ListView) findViewById(R.id.listsview);

		ArrayAdapter<String> adapter = new ArrayAdapter<String>(this,
				android.R.layout.test_list_item, array);
//		ArrayAdapter<String> adapter = new ArrayAdapter<String>(this,
//		R.layout.list_textview, array);

		mListView.setAdapter(adapter);
	}
}
</span>


     以上2种引用布局效果分别如下:

系统布局(无法改变其格式):

Android学习 16-> 列表控件ListView_第1张图片

 

   自定义布局:


            以上的内容有部分是从网站上摘抄而来的,具体地址忘了。

你可能感兴趣的:(Android学习 16-> 列表控件ListView)