您好,登錄后才能下訂單哦!
在android開發中ListView是比較常用的組件,它以列表的形式展示具體內容,并且能夠根據數據的長度自適應顯示。
在上一章,我們采用ArrayAdapter填充ListView,本章我們了解一下SimpleAdapter的應用。
一、SimpleAdapter應用
1、打開“res/layout/activity_main.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:orientation="horizontal" >
<ImageView
android:id="@+id/picture"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_margin="5dip"
android:contentDescription="@string/desc" />
<!-- 不加這一句會出現警告[Accessibility] Missing contentDescription attribute on p_w_picpath -->
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="vertical" >
<TextView
android:id="@+id/title"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textColor="#16CCDD"
android:textSize="22sp" />
<TextView
android:id="@+id/info"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textColor="#666666"
android:textSize="16sp" />
</LinearLayout>
</LinearLayout>
2、ListView代碼
(1)打開“src/com.genwoxue.listview_b/MainActivity.java”文件。
然后輸入以下代碼:
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import android.app.ListActivity;
import android.os.Bundle;
import android.widget.SimpleAdapter;
//ListActivity本質仍然是一個Activity,只不過對于ListVivew更方便
public class MainActivity extends ListActivity {//寫成Activity的話下面的setListAdapter會報錯。
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
//setContentView(R.layout.activity_main);
//注意SimpleAdapter適配器用法
SimpleAdapter adapter = new SimpleAdapter(this, getData(),//list
R.layout.activity_main, new String[]{"title","info","picture"},
new int[]{R.id.title,R.id.info,R.id.picture});
setListAdapter(adapter);
}
private List<Map<String,Object>> getData() {
List<Map<String,Object>> list = new ArrayList<Map<String,Object>>();
Map<String, Object> map = new HashMap<String, Object>();
map.put("title", "圖片");
map.put("info", "美辰良景,給你無限的遐思,讓人感覺無限溫馨……");
map.put("picture", R.drawable.photo);//圖片提前復制到drawable-hdpi文件夾了
list.add(map);
map = new HashMap<String, Object>();
map.put("title", "音樂");
map.put("info", "輕曼音樂,令人如入仙境,如癡如醉……");
map.put("picture", R.drawable.music);
list.add(map);
map = new HashMap<String, Object>();
map.put("title", "視頻");
map.put("info","震撼場景,360度的視覺捕獲,一覽無遺……");
map.put("picture", R.drawable.video);
list.add(map);
return list;
}
}
ListView列表視圖的顯示需要三個元素:
A.ListVeiw 用來展示列表的View。
B.適配器 用來把數據映射到ListView上的中介。
C.數據 具體的將被映射的字符串,圖片,或者基本組件。
simpleAdapter的擴展性最好,可以定義各種各樣的布局出來,可以放上ImageView(圖片),還可以放上Button(按鈕),CheckBox(復選框)等等。下面的代碼都直接繼承了ListActivity,ListActivity和普通的Activity沒有太大的差別,不同就是對顯示ListView做了許多優化,方便顯示而已。
(2)運行結果:
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。