<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    瘋狂

    STANDING ON THE SHOULDERS OF GIANTS
    posts - 481, comments - 486, trackbacks - 0, articles - 1
      BlogJava :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理

    android 學習之listview

    Posted on 2009-11-06 18:05 瘋狂 閱讀(3366) 評論(2)  編輯  收藏 所屬分類: android
      
       業余時間學學android,寫點例子分享下,問題仍然多多。

       ListView 是android開發中最常用的組件之一,它通過一個adapter來構建顯示通常有三種adapter可以使用ArrayAdapterSimpleAdapter,CursorAdapter。CursorAdapter主要正對數據庫使用,下面通過例子介紹ArrayAdapterSimpleAdapter的簡單使用:
       1:ArrayAdapter 它接受一個數組或者List作為參數來構建。
          一下通過簡單例子說明:
      創建Test 繼承ListActivity 這里我們傳入一個string數組
    public class ListTest extends ListActivity {
        
    /** Called when the activity is first created. */

        @Override
        
    public void onCreate(Bundle savedInstanceState) {
            
    super.onCreate(savedInstanceState);
            String[] sw 
    = new String[100];
            
    for (int i = 0; i < 100; i++{
                sw[i] 
    = "listtest_" + i;
            }

            ArrayAdapter
    <String> adapter = new ArrayAdapter<String>(this,android.R.layout.simple_list_item_1,sw);//使用系統已經實現好的xml文件simple_list_item_1
            setListAdapter(adapter);
        }

    }
    運行如圖:

     從以上代碼可以看不我們不需要加載我們自己的layout 而是用系統已經實現的layout很快速的實現了listview

    第二種SimpleAdapter
     先看下我們例子的最終截圖:
     
      通過上圖可以看出listview每行不僅僅是一個string 包括了很多項,圖片,多項文字
    我們通過構建list,并設置每項為一個map來實現:
    代碼:創建TestList類繼承Activity
    super.onCreate(savedInstanceState);
            setContentView(R.layout.main);
            ArrayList
    <HashMap<String, Object>> users = new ArrayList<HashMap<String, Object>>();
            
    for (int i = 0; i < 10; i++{
                HashMap
    <String, Object> user = new HashMap<String, Object>();
                user.put(
    "img", R.drawable.user);
                user.put(
    "username""姓名(" + i+")");
                user.put(
    "age", (20 + i) + "");
                users.add(user);
            }

            SimpleAdapter saImageItems 
    = new SimpleAdapter(this,
                    users,
    // 數據來源
                    R.layout.user,//每一個user xml 相當ListView的一個組件 
                    new String[] "img""username""age" },
                    
    // 分別對應view 的id
                    new int[] { R.id.img, R.id.name, R.id.age });
            
    // 獲取listview
            ((ListView) findViewById(R.id.users)).setAdapter(saImageItems);
    下面是main.xml的內容:
    <?xml version="1.0" encoding="utf-8"?>
    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
        android:orientation
    ="vertical" android:layout_width="fill_parent"
        android:layout_height
    ="fill_parent">
        
    <TextView android:text="用戶列表" android:gravity="center"
            android:layout_height
    ="wrap_content"
            android:layout_width
    ="fill_parent" android:background="#DAA520"
            android:textColor
    ="#000000">
        
    </TextView>
        
    <LinearLayout 
            android:layout_width
    ="wrap_content"
            android:layout_height
    ="wrap_content">
            
    <TextView android:text="姓名" 
                android:gravity
    ="center" android:layout_width="160px"
                android:layout_height
    ="wrap_content" android:textStyle="bold"
                android:background
    ="#7CFC00">
            
    </TextView>
            
    <TextView android:text="年齡" 
                android:layout_width
    ="170px" android:gravity="center"
                android:layout_height
    ="wrap_content" android:textStyle="bold"
                android:background
    ="#F0E68C">
            
    </TextView>
        
    </LinearLayout>
    <ListView android:layout_width="wrap_content" 
            android:layout_height
    ="wrap_content" android:id="@+id/users">
        
    </ListView>
    </LinearLayout>

    之中listView前面的可以說是標題行,listview相當于用來顯示數據的容器,里面每行是一個用戶信息,而用戶信息是樣子呢?
    看看use.xml
    <?xml version="1.0" encoding="utf-8"?>  
    <TableLayout    
             android:layout_width
    ="fill_parent"    
             xmlns:android
    ="http://schemas.android.com/apk/res/android"    
             android:layout_height
    ="wrap_content"    
             
    > 
             
    <TableRow > 
             
    <ImageView    
                   android:layout_width
    ="wrap_content"    
                   android:layout_height
    ="wrap_content"   
                   android:id
    ="@+id/img">    
             
    </ImageView>  
             
    <TextView    
                   android:layout_height
    ="wrap_content"    
                   android:layout_width
    ="150px"    
                   android:id
    ="@+id/name">  
             
    </TextView>  
             
    <TextView    
                   android:layout_height
    ="wrap_content"   
                   android:layout_width
    ="170px"    
                   android:id
    ="@+id/age">  
             
    </TextView> 
             
    </TableRow> 
    </TableLayout>  
    也就是說每行包含了一個img 和2個文字信息
    這個文件以參數的形式通過adapter在listview中顯示。
    也就是:
    SimpleAdapter saImageItems = new SimpleAdapter(this,
                    users,
    // 數據來源
                    R.layout.user,//每一個user xml 相當ListView的一個組件 
                    new String[] "img""username""age" },

                    
    // 分別對應view 的id
                    new int[] { R.id.img, R.id.name, R.id.age });

    end 針對CursorAdapter希望通過數據庫來試驗下,下次也寫個例子上來 希望有用 ,不對之處,歡迎拍磚!

    文件下載:/Files/freeman1984/my_list.rar

    評論

    # re: android 學習之listview   回復  更多評論   

    2009-11-06 18:10 by 咖啡妝
    有android高手,希望共同學習!

    # re: android 學習之listview   回復  更多評論   

    2009-11-06 20:24 by TiGERTiAN
    嘗試更進一步學習,寫一個自動加載list玩玩,這個在實際開發中還是比較常用得。
    主站蜘蛛池模板: 国产精品免费_区二区三区观看| 亚洲av无码一区二区三区四区| 粉色视频成年免费人15次| 国产亚洲一区二区三区在线| 国产大片免费观看中文字幕| 亚洲免费视频观看| 亚洲大码熟女在线观看| 免费国产成人午夜电影| 91成人免费福利网站在线| 亚洲αⅴ无码乱码在线观看性色| 久久综合亚洲色HEZYO社区| 国产亚洲精品成人a v小说| 国产成人啪精品视频免费网| 免费H网站在线观看的| 久久99精品国产免费观看| A级毛片成人网站免费看| 无套内谢孕妇毛片免费看看| 亚洲精品无码永久在线观看男男| 亚洲午夜在线一区| 2022年亚洲午夜一区二区福利| 亚洲AV无码1区2区久久| 免费羞羞视频网站| 欧美大尺寸SUV免费| sss日本免费完整版在线观看| 亚洲成人黄色网址| 噜噜噜亚洲色成人网站∨| 亚洲A∨无码无在线观看| 亚洲国产精品成人精品无码区在线 | 免费无码黄网站在线看| fc2成年免费共享视频18| 一级毛片免费在线播放| 成人嫩草影院免费观看| 一二三四在线观看免费中文在线观看| 免费人成视频在线播放| 老司机福利在线免费观看| 亚洲色偷偷av男人的天堂| 亚洲AV日韩精品久久久久| 亚洲欧洲在线观看| 亚洲黄色在线观看网站| 亚洲一区二区三区在线 | 无人视频免费观看免费视频|