listview可以通过外部listview.xml文件来定义listview中的内容格式,因为listview.xml中可以添加textview,所以每行数据都可以完全自定义样式
1.样式文件listview_item.xml
<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" >
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="100dp"
android:orientation="horizontal" >
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="200dp"
android:orientation="horizontal" >
<TextView
android:id="@+id/a"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="标题"
android:textColor="#F00"
android:textSize="30sp" />
<TextView
android:id="@+id/b"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="内容"
android:textColor="#00CED1"
android:textSize="30sp" />
</LinearLayout>
</LinearLayout>
</RelativeLayout>
2.listview界面
<ListView
android:id="@+id/lvsa"
android:layout_width="match_parent"
android:layout_height="300dp"
>
3.后台代码
List<Map<String, String>> listSa = new ArrayList<Map<String, String>>();
ListView lvsa;
SimpleAdapter sa;
String[] from = {"datakey", "datavalue"};
int[] to = {R.id.a, R.id.b,};
static HashMap<String,String> show = new HashMap<String, String>();
//获取数据
lvsa = findViewById(R.id.lvsa);
for (int i = 0; i < 20; i++) {
show = new HashMap<String, String>();
show.put("datakey", "aa" + i);
show.put("datavalue", "bb" + i);
listSa.add(show);
}
sa = new SimpleAdapter(this, listSa, R.layout.listview_item, from, to);//listview_item.xml控制字体样式
lvsa.setAdapter(sa);