一、使用BaseAdapter实现ListView展示效果<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" android:paddingBottom="@dimen/activity_vertical_margin" android:paddingLeft="@dimen/activity_horizontal_margin" android:paddingRight="@dimen/activity_horizontal_margin" android:paddingTop="@dimen/activity_vertical_margin" tools:context=".MainActivity" > <ListView android:id="@+id/list_view" android:layout_width="match_parent" android:layout_height="match_parent" > </ListView></RelativeLayout><?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" android:orientation="horizontal" > <TextView android:id="@+id/name" android:layout_width="wrap_content" android:layout_height="wrap_content" android:width="120dp" android:layout_marginLeft="40dp" android:layout_marginTop="20dp" android:text="姓名" > </TextView> <TextView android:id="@+id/score" android:layout_width="wrap_content" android:layout_height="wrap_content" android:width="120dp" android:layout_marginLeft="40dp" android:layout_marginTop="20dp" android:text="成绩" > </TextView></LinearLayout>package com.example.listview;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.view.LayoutInflater;import android.view.Menu;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 List<Map<String, String>> persons = new ArrayList<Map<String, String>>(); @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); // 初始化数据 initPersons(); // 找到ListView元素 ListView listView = (ListView) findViewById(R.id.list_view); // 设置ListView的适配器Adapter listView.setAdapter(new PersonAdapter()); } private void initPersons() { Map<String, String> person1 = new HashMap<String, String>(); person1.put("name", "张三1"); person1.put("score", "68"); persons.add(person1); Map<String, String> person2 = new HashMap<String, String>(); person2.put("name", "张三2"); person2.put("score", "99"); persons.add(person2); Map<String, String> person3 = new HashMap<String, String>(); person3.put("name", "张三3"); person3.put("score", "68"); persons.add(person3); Map<String, String> person4 = new HashMap<String, String>(); person4.put("name", "张三4"); person4.put("score", "45"); persons.add(person4); Map<String, String> person5 = new HashMap<String, String>(); person5.put("name", "张三5"); person5.put("score", "77"); persons.add(person5); Map<String, String> person6 = new HashMap<String, String>(); person6.put("name", "张三6"); person6.put("score", "88"); persons.add(person6); } private class PersonAdapter extends BaseAdapter { @Override public int getCount() { return persons.size(); } @Override public Object getItem(int arg0) { return null; } @Override public long getItemId(int arg0) { return 0; } @Override public View getView(int position, View convertView, ViewGroup parent) { View view = null; if (convertView == null) { // 第一种写法(View.inflate) /*view = View.inflate(getApplicationContext(), R.layout.item, null);*/ // 第二种写法(LayoutInflater.from().inflate) view = LayoutInflater.from(getApplicationContext()).inflate( R.layout.item, null); } else { view = convertView; } TextView nameTv = (TextView) view.findViewById(R.id.name); TextView scoreTv = (TextView) view.findViewById(R.id.score); // 获取当前遍历的item Map<String, String> person = persons.get(position); String name = person.get("name"); String score = person.get("score"); nameTv.setText(name); scoreTv.setText(score); return view; } } @Override public boolean onCreateOptionsMenu(Menu menu) { // Inflate the menu; this adds items to the action bar if it is present. getMenuInflater().inflate(R.menu.main, menu); return true; }}
二、使用SimpleAdapter实现ListView展示效果
package com.example.listview;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.view.Menu;import android.widget.ListView;import android.widget.SimpleAdapter;public class MainActivity1 extends Activity { private List<Map<String, String>> persons = new ArrayList<Map<String, String>>(); @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); // 初始化数据 initPersons(); // 找到ListView元素 ListView listView = (ListView) findViewById(R.id.list_view); // 使用SimpleAdapter实现适配器 SimpleAdapter simpleAdapter = new SimpleAdapter( getApplicationContext(), persons, R.layout.item, new String[] { "name", "score" }, new int[] { R.id.name, R.id.score }); // 设置ListView的适配器Adapter listView.setAdapter(simpleAdapter); } private void initPersons() { Map<String, String> person1 = new HashMap<String, String>(); person1.put("name", "张三11"); person1.put("score", "68"); persons.add(person1); Map<String, String> person2 = new HashMap<String, String>(); person2.put("name", "张三22"); person2.put("score", "99"); persons.add(person2); Map<String, String> person3 = new HashMap<String, String>(); person3.put("name", "张三33"); person3.put("score", "68"); persons.add(person3); Map<String, String> person4 = new HashMap<String, String>(); person4.put("name", "张三44"); person4.put("score", "45"); persons.add(person4); Map<String, String> person5 = new HashMap<String, String>(); person5.put("name", "张三55"); person5.put("score", "77"); persons.add(person5); Map<String, String> person6 = new HashMap<String, String>(); person6.put("name", "张三66"); person6.put("score", "88"); persons.add(person6); } @Override public boolean onCreateOptionsMenu(Menu menu) { // Inflate the menu; this adds items to the action bar if it is present. getMenuInflater().inflate(R.menu.main, menu); return true; }}