溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

列表視圖ListView之二

發(fā)布時間:2020-06-13 05:41:03 來源:網(wǎng)絡 閱讀:398 作者:沒有水勒魚 欄目:移動開發(fā)

在android開發(fā)中ListView是比較常用的組件,它以列表的形式展示具體內(nèi)容,并且能夠根據(jù)數(shù)據(jù)的長度自適應顯示。

  在上一章,我們采用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" />
<!-- 不加這一句會出現(xiàn)警告[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代碼 

 ?。?)打開“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本質(zhì)仍然是一個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.適配器 用來把數(shù)據(jù)映射到ListView上的中介。

  C.數(shù)據(jù) 具體的將被映射的字符串,圖片,或者基本組件。

  simpleAdapter的擴展性最好,可以定義各種各樣的布局出來,可以放上ImageView(圖片),還可以放上Button(按鈕),CheckBox(復選框)等等。下面的代碼都直接繼承了ListActivity,ListActivity和普通的Activity沒有太大的差別,不同就是對顯示ListView做了許多優(yōu)化,方便顯示而已。

 ?。?)運行結(jié)果:

列表視圖ListView之二



向AI問一下細節(jié)

免責聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI