android之arrayAdapter

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>


item1.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"
    >

    <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>


item3.xml代碼如下:

<?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>




發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章