第一次写,写的不好,多多指教!
SimpleAdapter是最方便的适配器,应用起来非常方便!!!
SimpleAdapter(Context context, List<? extends Map<String, ?>> data, int resource, String[] from, int[] to);
按照构造的需要,往里面添加即可。
SimpleAdapter simpleAdapter=new SimpleAdapter(this,list,R.layout.baidu,
new String[]{"Image","name","mp"},new int[]{R.id.image1,R.id.text,R.id.text1});
Context context:上下文,一般简单应用直接写this即可
List<? extends Map<String, ?>> data:列表要显示的数据
private List<Map<String ,Object>>list=new ArrayList<>();
public List<Map<String ,Object>> ReList(){
List<Map<String ,Object>>lists=new ArrayList<>();
for(int i=0;i<name.length;i++){
Map<String ,Object> map=new HashMap<>();
map.put("name",name[i]);
map.put("Image",image[i]);
map.put("mp","发送消息");
lists.add(map);
}
return lists;
}
注意:map中放入的关键字“name”,“Image”,“mp”要与构造里面的String[]from,int[]to数组中的内容相同
int resource:设置List View单项布局Id,自己写布局.
新建一个布局文件baidu.xml
<?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:background="#F5FFFA">
<ImageView
android:layout_width="80dp"
android:layout_height="80dp"
android:id="@+id/image1"
/>
<RelativeLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content">
<TextView
android:id="@+id/text"
android:textSize="30sp"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
/>
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textSize="20sp"
android:id="@+id/text1"
android:layout_alignParentRight="true"
android:layout_alignParentEnd="true"
/>
</RelativeLayout>
</LinearLayout>
String[] from:存放Map中的关键字,int[] to存放baidu.xml文件中布局控件的id,要一 一对应,将Map关键字对应的内容传到相应布局控件中
new String[]{"Image","name","mp"},new int[]{R.id.image1,R.id.text,R.id.text1}
步骤:
构建工程;
系统自建MainActivity,java和activity_main.xml;
1、activity_main.xml中添加List View控件:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".MainActivity">
<ListView
android:id="@+id/list_item"
android:layout_width="match_parent"
android:layout_height="match_parent"
>
</ListView>
</LinearLayout>
2、自建另一个xml布局文件
上面的baidu.xml
3、MainActivity.java:
public class MainActivity extends AppCompatActivity {
private ListView listView;
private String[] name={"老大","老二","老三","老四","老五"};
private int image[]={R.drawable.i_a,R.drawable.i_b,R.drawable.i_c,R.drawable.i_d,R.drawable.i_e};
private List<Map<String ,Object>>list=new ArrayList<>();
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
listView=findViewById(R.id.list_item);
list=ReList();
SimpleAdapter simpleAdapter=new SimpleAdapter(this,list,R.layout.baidu,
new String[]{"Image","name","mp"},new int[]{R.id.image1,R.id.text,R.id.text1});
listView.setAdapter(simpleAdapter);
}
public List<Map<String ,Object>> ReList(){
List<Map<String ,Object>>lists=new ArrayList<>();
for(int i=0;i<name.length;i++){
Map<String ,Object> map=new HashMap<>();
map.put("name",name[i]);
map.put("Image",image[i]);
map.put("mp","发送消息");
lists.add(map);
}
return lists;
}
}
两个xml文件,一个Java文件就可以创建一个漂亮的List View了