activity中代碼:
package com.ghg.ArrayAdapter;
import android.app.Activity;
import android.os.Bundle;
import android.widget.ArrayAdapter;
import android.widget.ListView;
public class Day06_01_ArrayAdapterDemoActivity extends Activity {
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
initView();
}
public String[] getData(){
String[] arr={
"xml","hibernate","spring","android","coreJava"
};
return arr;
}
ListView listView;
private void initView() {
// TODO Auto-generated method stub
listView=(ListView) findViewById(R.id.lv_data);
/** 1.創建數組適配器(四個參數)
* this:環境,需要訪問資源
* R.layout.item1:確定在那個佈局資源中顯示
* R.id.tv_data:確定顯示在佈局資源的的那個組件中
* getData():提供顯示的數據源
*/
// 1. ArrayAdapter<String> adapter=new ArrayAdapter<String>(this,R.layout.item1, R.id.tv_data, getData());
/**
* 2.說明xml文件中佈局結構是:<LinearLayout>
* <TextView></TextView>
* </LinearLayout>
* 採用四個參數創建數組適配器可以正常顯示;
*/
// 2. ArrayAdapter<String> adapter=new ArrayAdapter<String>(this,R.layout.item2, R.id.tv_data, getData());
/** 3.創建數組適配器(三個參數)
* android.R.layout.simple_list_item_1:系統提供的佈局;可以正常顯示。
* 但提出了一個問題?上面提供的佈局是<LinearLayout>
* <TextView></TextView>
* </LinearLayout>
* 還是直接就是一個<TextView></TextView>.
* 在item3中證明 <TextView></TextView>佈局可以正常顯示;把item3的佈局改成
* <LinearLayout>
* <TextView></TextView>
* </LinearLayout>顯示時拋出異常。
*/
// 3. ArrayAdapter<String> adapter=new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, getData());
/** 通過自己定義的數組資源來創建數組適配器,並在item3上顯示
* R.array.words:自己定義的資源,在res/values/array.xml中;
* R.layout.item3:把數組中的數據在這個控件上顯示。
*/
ArrayAdapter adapter=ArrayAdapter.createFromResource(this, R.array.words, R.layout.item3);
listView.setAdapter(adapter);
}
}
下面是xml文件:
main.xml如下:
<?xml version="1.0" encoding="utf-8"?>
<ListView xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/lv_data"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical" >
</ListView>
<?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="wrap_content"
android:orientation="horizontal"
>
<ImageView
android:layout_width="48dp"
android:layout_height="48dp"
android:src="@drawable/ic_launcher" />
<TextView
android:id="@+id/tv_data"
android:layout_width="0dp"
android:layout_height="48dp"
android:layout_weight="1.0"
android:gravity="center_vertical"
/>
</LinearLayout>
item2.xml代碼如下:
<?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="wrap_content"
android:orientation="horizontal"
>
<TextView
android:id="@+id/tv_data"
android:layout_width="0dp"
android:layout_height="48dp"
android:layout_weight="1.0"
android:gravity="center_vertical"
/>
</LinearLayout>
<?xml version="1.0" encoding="utf-8"?>
<TextView xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="48dp"
android:textSize="20sp"
>
</TextView>