个人认为微信、qq之类的好友列表可能用到了SimpleAdapter,自己做了个示例,保存下来以后看
主界面的布局xml文件:
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:id="@+id/root" android:layout_width="match_parent" android:layout_height="match_parent"> <ListView android:layout_width="match_parent" android:layout_height="wrap_content" android:id="@+id/listView" /> </LinearLayout>listView的布局放在simple_list.xml文件里面(注意xml文件必须是以小写字母开头):
<?xml version="1.0" encoding="utf-8"?> <!-->外部布局需要是水平的<!--> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="horizontal" android:layout_width="match_parent" android:layout_height="wrap_content"> <!-->外部布局需要是垂直的<!--> <ImageView android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/header" /> <LinearLayout android:orientation="vertical" android:layout_width="wrap_content" android:layout_height="wrap_content"> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:textAppearance="?android:attr/textAppearanceSmall" android:id="@+id/names" /> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:textAppearance="?android:attr/textAppearanceSmall" android:id="@+id/citys" /> </LinearLayout> </LinearLayout>MainActivity.java:
package com.sta.fwk.test; import android.support.v7.app.AppCompatActivity; import android.os.Bundle; import android.view.View; import android.widget.AdapterView; import android.widget.ListView; import android.widget.SimpleAdapter; import android.widget.Toast; import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; public class MainActivity extends AppCompatActivity { private String names[] = new String[]{ "广西区", "云南省", "四川省" }; private String[] citys = new String[]{ "南宁市", "昆明市", "成都市" }; private int imgId[] = new int[]{ R.drawable.b, R.drawable.b, R.drawable.b }; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); ListView v = (ListView) super.findViewById(R.id.listView); List<Map<String,Object>> lists = new ArrayList<Map<String, Object>>(); for(int i = 0;i<names.length;i++){ HashMap<String,Object> itme = new HashMap<String, Object>(); itme.put("pro",names[i]); itme.put("city",citys[i]); itme.put("img",imgId[i]); lists.add(itme); } SimpleAdapter simp = new SimpleAdapter(this,lists,R.layout.simple_list, new String[]{"pro","city", "img"}, new int[]{R.id.names,R.id.citys,R.id.header }); v.setAdapter(simp); v.setOnItemClickListener(new AdapterView.OnItemClickListener() { @Override public void onItemClick(AdapterView<?> parent, View view, int position, long id) { Toast.makeText(getApplicationContext(), names[position]+"的省会是"+citys[position]+"市",Toast.LENGTH_LONG).show(); } }); } }效果图: