android開發教程之listview使用方法

android開發教程之listview使用方法

首先是佈局檔案,這裡需要兩個佈局檔案,一個是放置列表控制元件的Activity對應的佈局檔案 main.xml,另一個是ListView中每一行資訊顯示所對應的佈局  list_item.xml    這一步需要注意的問題是ListView 控制元件的id要使用Android系統內建的 android:id=”@android:id/list”   [注意形式]

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=”vertical” >
        <ListView
        android:id=”@android:id/list”
        android:layout_width=”match_parent”
        android:layout_height=”match_parent”
        android:padding=”20dip”/>
</LinearLayout>

list_item.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” >

    <TextView
        android:id=”@ id/user_name”
        android:layout_width=”match_parent”
        android:layout_height=”match_parent”
        android:layout_weight=”1″/>
    <TextView
        android:id=”@ id/user_id”
        android:layout_width=”match_parent”
        android:layout_height=”match_parent”
        android:layout_weight=”1″/>
</LinearLayout>

然後就設定MainActivity中的程式碼了:基本思想就是先將資料新增到ArrayList中,然後在設定SimpleAdapter介面卡完成設定,入下:

複製程式碼 程式碼如下:
package com.example.android_newlistview;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.Map;

import android.os.Bundle;
import android.app.Activity;
import android.app.ListActivity;
import android.view.Menu;
import android.widget.SimpleAdapter;

public class MainActivity extends ListActivity {

   
    String[] from={“name”,”id”};              //這裡是ListView顯示內容每一列的列名
    int[] to={R.id.user_name,R.id.user_id};   //這裡是ListView顯示每一列對應的list_item中控制元件的id

    String[] userName={“zhangsan”,”lisi”,”wangwu”,”zhaoliu”}; //這裡第一列所要顯示的人名
    String[] userId={“1001″,”1002″,”1003″,”1004”};  //這裡是人名對應的ID

    ArrayList<HashMap<String,String>> list=null;
    HashMap<String,String> map=null;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        // TODO Auto-generated method stub
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);       //為MainActivity設定主佈局
        //建立ArrayList物件;
        list=new ArrayList<HashMap<String,String>>();
        //將資料存放進ArrayList物件中,資料安排的結構是,ListView的一行資料對應一個HashMap物件,
        //HashMap物件,以列名作為鍵,以該列的值作為Value,將各列資訊新增進map中,然後再把每一列對應
        //的map物件新增到ArrayList中

        for(int i=0; i<4; i ){
            map=new HashMap<String,String>();       //為避免產生空指標異常,有幾列就建立幾個map物件
            map.put(“id”, userId[i]);
            map.put(“name”, userName[i]);
            list.add(map);
        }

        //建立一個SimpleAdapter物件
        SimpleAdapter adapter=new SimpleAdapter(this,list,R.layout.list_item,from,to);
        //呼叫ListActivity的setListAdapter方法,為ListView設定介面卡
        setListAdapter(adapter);       
    }
}

另外對點選某一行作出響應的方法是覆寫onListItemClick方法,根據返回的position(從0開始):
複製程式碼 程式碼如下:
@Override
 protected void onListItemClick(ListView l, View v, int position, long id) {
  // TODO Auto-generated method stub
  super.onListItemClick(l, v, position, id);
 }

您可能感興趣的文章:

Android動態繪製餅狀圖的示例程式碼手把手教你用Android自定義餅狀圖安卓(Android)開發之自定義餅狀圖MPAndroidChart開源圖表庫的使用介紹之餅狀圖、折線圖和柱狀圖android TextView設定中文字型加粗實現方法android listview優化幾種寫法詳細介紹android WebView載入html5介紹android imageview圖片居中技巧應用Android TextView設定背景色與邊框的方法詳解Android使用自定義View實現餅狀圖的例項程式碼