1.ArrayAdapter 数组适配器,该适配使用非常简单,但是也有一定的局限性,列表只能是TextView,如下所示
Java代码
import android.app.Activity;
import android.os.Bundle;
import android.widget.ArrayAdapter;
import android.widget.ListView;
public class MainActivity extends Activity {
private ListView listView;
private String[] letters = { "A", "B", "C", "D", "E", "F", "G","H",
"I", "J", "K", "L", "M", "N", "O", "P", "Q", "R", "S", "T",
"U", "V","W", "X", "Y", "Z" };
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
listView = (ListView) findViewById(R.id.listView);
/**
* 匿名内部类设置适配器 context:上下文,即代表当前的Activity.
* textViewResourceId:列表的布局,本例采用Android自带的布局,当然读者也可以自定义布局
* ,但要注意的是在选择布局的方式时要选择TextView objects:数据源,可以是多种类型,如数组,集合
*/
listView.setAdapter(new ArrayAdapter
android.R.layout.simple_list_item_1, citys));
}
}
布局:
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical" >
android:layout_width="wrap_content"
android:layout_height="wrap_content" >
2.SimpleAdapter 简单适配器,不要看名字简单,其实并不简单,该适配器的功能比较强大,如下例所示
Java代码
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import android.app.Activity;
import android.os.Bundle;
import android.widget.ListView;
import android.widget.SimpleAdapter;
public class MainActivity extends Activity {
private ListView listView;
private String[] letters = { "A", "B", "C", "D", "E", "F", "G", "H", "I",
"J", "K", "L", "M", "N", "O", "P", "Q", "R", "S", "T", "U", "V",
"W", "X", "Y", "Z" };
private String[] names = { "a", "b", "c", "d", "e", "f", "g", "h", "i",
"j", "k", "l", "m", "n", "o", "p", "q", "r", "s", "t", "u", "v",
"w", "x", "y", "z" };
private List
布局文件:
list
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="horizontal" >
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="10dp" />
activtiy_main
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical" >
android:layout_width="wrap_content"
android:layout_height="wrap_content" >
3.BaseAdapter适配器,该适配器非常灵活,运用非常广,如下例所示
Java代码
import android.app.Activity;
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.ListView;
import android.widget.TextView;
public class MainActivity extends Activity {
private ListView listView;
private String[] letters = { "A", "B", "C", "D", "E", "F", "G", "H", "I",
"J", "K", "L", "M", "N", "O", "P", "Q", "R", "S", "T", "U", "V",
"W", "X", "Y", "Z" };
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
listView = (ListView) findViewById(R.id.listView);
listView.setAdapter(new MyBaseAdapter());
}
class MyBaseAdapter extends BaseAdapter {
// 列表的数量
@Override
public int getCount() {
// TODO Auto-generated method stub
return letters.length;
}
// 返回当前的列表项
@Override
public Object getItem(int position) {
// TODO Auto-generated method stub
return letters[position];
}
// 返回当前的列表项所在的索引
@Override
public long getItemId(int position) {
// TODO Auto-generated method stub
return position;
}
// 得到并显示列表项
@Override
public View getView(int position, View convertView, ViewGroup parent) {
// TODO Auto-generated method stub
if (convertView == null) {
LayoutInflater inflater = getLayoutInflater();
convertView = inflater.inflate(R.layout.list, parent, false);
}
TextView letter = (TextView) convertView.findViewById(R.id.letter);
letter.setText(letters[position]);
return convertView;
}
}
}
list
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="horizontal" >
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
activity_main
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical" >
android:layout_width="wrap_content"
android:layout_height="wrap_content" >