Android教程網
  1. 首頁
  2. Android 技術
  3. Android 手機
  4. Android 系統教程
  5. Android 游戲
 Android教程網 >> Android技術 >> 關於Android編程 >> [android]5.listview組件的使用(重要!)

[android]5.listview組件的使用(重要!)

編輯:關於Android編程

一、Listview的使用:

1、Listview是可以存放其他組件的容器。

①Listview想要顯示條目要調用listview.setAdapter方法設置一個適配器。

②、listview需要被告訴顯示多少個條目。

③、指定listview中每個條目顯示什麼樣子。

 

//獲取ListView空間:

ListViewlv= (ListView) this.findViewById(R.id.lv);

 

// 要想設置listview的顯示的內容 就需要把listview的數據適配器給設置進去

lv.setAdapter(new MyAdapter());

 

//給listview的每一個條目注冊點擊事件.

//setOnItemClickListener方法參數為:ClickListener接口的子類

lv.setOnItemClickListener(newOnItemClickListener() {

//點擊條目執行參數(listview對象,當前點擊條目的view對象,位置,行號)

public voidonItemClick(AdapterViewparent, View view,

intposition, long id) {

//獲取適配器中getItem()方法的返回值。

lv.getItemAtPosition(position);

//獲取適配器中getItemId方法的返回值。

lv.getItemIdAtPosition(position);

}

});

 

 

2、自定義適配器類,繼承BaseAdapter類。

publicclass MyAdapter extends BaseAdapter{

 

/**

* 告訴listview顯示多個條目

*/

@Override

public int getCount() {

return5;

}

 

 

/**

* 返回每一個條目對應的對象。

*/

@Override

public Object getItem(int position) {

returnnull;

}

 

 

/**

* 返回每一個條目對應的編號,

*/

@Override

public long getItemId(int position) {

returnposition;

}

 

/**

* 設置listview每一個條目顯示成什麼樣子,並返回每個組件。

* 這個方法會被調用多少次?

* 方法參數1:當前條目顯示的位置,從0開始

*方法的返回值是:view對象。

*/

@Override

public View getView(int position, ViewconvertView, ViewGroup parent) {

if(position==0){//第一個位置。

//創建TextView 對象。

TextViewtv = new TextView(DemoActivity.this);

tv.setText("我是第一個textview");

returntv;

}

if(position==1){

//創建圖片view

ImageView iv = newImageView(DemoActivity.this);

iv.setImageResource(R.drawable.ic_launcher);

return iv;

}

TextViewtv1 = new TextView(DemoActivity.this);

tv1.setText("我是textview"+position);

returntv1;

}

}

}

二、系統提供的適配器:

1、SimpleAdapter類:

ListView lv = (ListView) this.findViewById(R.id.lv);

LayoutInflater inflater = (LayoutInflater)getSystemService(

LAYOUT_INFLATER_SERVICE);

datas =new ArrayList>();

 

for(Person p : persons){

Map map = newHashMap();

map.put("name", p.getName());

map.put("phone", p.getPhone());

datas.add(map);

}

//設置適配器

lv.setAdapter(new SimpleAdapter(this, datas,

R.layout.item,

new String[]{"name","phone"},

newint[]{R.id.tv_name,R.id.tv_phone}));

 

SimpleAdapter 類構造函數的參數:

參數1:上下文,

參數2:數據,list集合中是map集合。List>

參數3:條目顯示的布局,布局對應的資源文件。

參數4:對象的屬性,map中作為key的值。

參數5:組件的id的int數組。

2、ArrayAdapter類:

lv.setAdapter(new ArrayAdapter(this,R.layout.item,

R.id.tv_name,new String[]{"張三","李四","王五"}));

三、布局填充器的使用:

1、填充器,將布局的xml中的布局轉成view對象:

2、獲取布局填充器對象:

LayoutInflater inflater = (LayoutInflater)getSystemService(

LAYOUT_INFLATER_SERVICE);

 

//將布局文件轉成view對象的的方法,參數(布局的xml文件, 是否獨立的參數)

//R.layout.item:對應layout目錄下的item.xml文件。

 

View view =inflater.inflate(R.layout.item, null);

//獲取view對象中的id為tv_name的組件。

TextView tv_name= (TextView) view.findViewById(R.id.tv_name);

 

3、layout目錄下的item.xml文件內容為:

 

 

android:layout_width="match_parent"

android:layout_height="wrap_content"

android:gravity="center_horizontal"

android:orientation="vertical" >

 

android:id="@+id/tv_name"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:text="姓名"

android:textAppearance="?android:attr/textAppearanceLarge"/>

 

android:id="@+id/tv_phone"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:text="電話號碼"

android:textSize="18sp"

/>

 

  1. 上一頁:
  2. 下一頁:
熱門文章
閱讀排行版
Copyright © Android教程網 All Rights Reserved