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>




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