Android開發之清單控制項

來源:互聯網
上載者:User

一、基礎知識:

ListView是一個經常用到的控制項,ListView裡面的每個子項Item可以使一個字串,也可以是一個群組控制項。先說說ListView的實現:

1.準備ListView要顯示的資料;

2.使用一維或多維動態數組儲存資料;

3.構建適配器,簡單地來說,適配器就是Item數組,動態數組有多少元素就產生多少個Item;

4.把適配器添加到ListView,並顯示出來。

  

二、代碼展示:

1."Activity_10srcyanactivity_10MainActivity.java"

[java]

package yan.activity_10; 

 

import java.util.ArrayList; 

import java.util.HashMap; 

 

import android.os.Bundle; 

import android.view.View; 

import android.widget.ListView; 

import android.widget.SimpleAdapter; 

import android.app.ListActivity; 

 

public class MainActivity extends ListActivity { 

    private final String raw_user_name = "user_name"; 

    private final String raw_user_id = "user_id"; 

    private final String raw_user_ip = "user_ip"; 

     

    private String user_name_array[]={"zhangsan","lisi","wangwu"}; 

    private String user_ip_array[]={ 

            "192.168.1.115", 

            "192.168.1.116", 

            "192.168.1.117"}; 

     

    @Override 

    protected void onCreate(Bundle savedInstanceState) { 

        super.onCreate(savedInstanceState); 

        setContentView(R.layout.main); 

         

        // 產生動態數組,並且傳入資料  

        ArrayList <HashMap<String,String>> mylistArray = new ArrayList <HashMap<String,String>>(); 

         

        for(int i=0; i<30; ++i) 

        { 

            HashMap<String,String> map = new HashMap<String,String>(); 

            System.out.println("HAH : " + i%3); 

            map.put(raw_user_name, user_name_array[i%3]); 

            map.put(raw_user_id, i+1+""); 

            map.put(raw_user_ip, user_ip_array[i%3]); 

            mylistArray.add(map); 

        } 

         

        //產生適配器,數組-->>ListItem  

        SimpleAdapter mSchedule = new SimpleAdapter( 

                this, 

                mylistArray,    //  資料來源  

                R.layout.my_listview,   // ListItem的XML實現  

                new String[] {raw_user_name,raw_user_id,raw_user_ip},   // 動態數組與ListItem對應的子項  

                new int[] {R.id.user_name,R.id.user_id,R.id.user_ip}    // ListItem的XML檔案裡面的兩個TextView ID  

                ); 

        setListAdapter(mSchedule); 

    } 

 

    @Override 

    protected void onListItemClick(ListView l, View v, int position, long id) { 

        // TODO Auto-generated method stub  

        super.onListItemClick(l, v, position, id); 

        System.out.println("id ---------------- " + id); 

        System.out.println("position ---------------- " + position); 

    } 

       

package yan.activity_10;

import java.util.ArrayList;

import java.util.HashMap;

import android.os.Bundle;

import android.view.View;

import android.widget.ListView;

import android.widget.SimpleAdapter;

import android.app.ListActivity;

public class MainActivity extends ListActivity {

 private final String raw_user_name = "user_name";

 private final String raw_user_id = "user_id";

 private final String raw_user_ip = "user_ip";

 

 private String user_name_array[]={"zhangsan","lisi","wangwu"};

 private String user_ip_array[]={

   "192.168.1.115",

   "192.168.1.116",

   "192.168.1.117"};

 

 @Override

 protected void onCreate(Bundle savedInstanceState) {

  super.onCreate(savedInstanceState);

  setContentView(R.layout.main);

  

  // 產生動態數組,並且傳入資料

  ArrayList <HashMap<String,String>> mylistArray = new ArrayList <HashMap<String,String>>();

  

  for(int i=0; i<30; ++i)

  {

   HashMap<String,String> map = new HashMap<String,String>();

   System.out.println("HAH : " + i%3);

   map.put(raw_user_name, user_name_array[i%3]);

   map.put(raw_user_id, i+1+"");

   map.put(raw_user_ip, user_ip_array[i%3]);

   mylistArray.add(map);

  }

  

  //產生適配器,數組-->>ListItem

  SimpleAdapter mSchedule = new SimpleAdapter(

    this,

    mylistArray, // 資料來源

    R.layout.my_listview, // ListItem的XML實現

    new String[] {raw_user_name,raw_user_id,raw_user_ip}, // 動態數組與ListItem對應的子項

    new int[] {R.id.user_name,R.id.user_id,R.id.user_ip} // ListItem的XML檔案裡面的兩個TextView ID

    );

  setListAdapter(mSchedule);

 }

 @Override

 protected void onListItemClick(ListView l, View v, int position, long id) {

  // TODO Auto-generated method stub

  super.onListItemClick(l, v, position, id);

  System.out.println("id ---------------- " + id);

  System.out.println("position ---------------- " + position);

 }

 

 

}

 

2."Activity_10reslayoutmain.xml"

[html]

<?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="wrap_content"   

    >   

   <ListView 

       android:id="@+id/android:list" 

       android:layout_width="fill_parent" 

       android:layout_height="wrap_content" 

       android:drawSelectorOnTop="false" 

       android:scrollbars="vertical" 

    /> 

</LinearLayout>   

<?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="wrap_content" 

    > 

   <ListView

       android:id="@+id/android:list"

       android:layout_width="fill_parent"

       android:layout_height="wrap_content"

       android:drawSelectorOnTop="false"

       android:scrollbars="vertical"

    />

</LinearLayout>  

3."Activity_10reslayoutmy_listview.xml"  my_listview.xml用於設計ListView的Item:

[html]

<?xml version="1.0" encoding="utf-8"?> 

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 

    android:layout_width="fill_parent" 

    android:layout_height="fill_parent" 

    android:orientation="horizontal" 

    android:paddingBottom="3dip" 

    android:paddingTop="1dip" 

    android:paddingLeft="10dip"> 

    <TextView 

        android:id="@+id/user_name" 

        android:layout_width="100dp" 

        android:layout_height="30dp" 

        android:textSize="10pt" 

        android:singleLine="true"/> 

    <TextView 

        android:id="@+id/user_id" 

        android:layout_width="100dp" 

        android:layout_height="30dp" 

        android:textSize="10pt" 

        android:singleLine="true"/> 

    <TextView 

        android:id="@+id/user_ip" 

        android:layout_width="wrap_content" 

        android:layout_height="fill_parent" 

        android:gravity="right" 

        android:textSize="10pt"/> 

</LinearLayout> 

<?xml version="1.0" encoding="utf-8"?>

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"

    android:layout_width="fill_parent"

    android:layout_height="fill_parent"

    android:orientation="horizontal"

    android:paddingBottom="3dip"

    android:paddingTop="1dip"

    android:paddingLeft="10dip">

    <TextView

        android:id="@+id/user_name"

        android:layout_width="100dp"

        android:layout_height="30dp"

        android:textSize="10pt"

        android:singleLine="true"/>

    <TextView

        android:id="@+id/user_id"

        android:layout_width="100dp"

        android:layout_height="30dp"

        android:textSize="10pt"

        android:singleLine="true"/>

 <TextView

        android:id="@+id/user_ip"

        android:layout_width="wrap_content"

        android:layout_height="fill_parent"

        android:gravity="right"

        android:textSize="10pt"/>

</LinearLayout>

 

三、效果展示:

 

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.