android之arrayAdapter

来源:互联网 发布:淘宝人生 新笔趣阁 编辑:程序博客网 时间:2024/06/04 18:08
androidlayoutencodinglistviewhibernatestring

activity中代码:

[java] view plaincopy
  1. package com.ghg.ArrayAdapter;  
  2.   
  3. import android.app.Activity;  
  4. import android.os.Bundle;  
  5. import android.widget.ArrayAdapter;  
  6. import android.widget.ListView;  
  7.   
  8. public class Day06_01_ArrayAdapterDemoActivity extends Activity {  
  9.     /** Called when the activity is first created. */  
  10.     @Override  
  11.     public void onCreate(Bundle savedInstanceState) {  
  12.         super.onCreate(savedInstanceState);  
  13.         setContentView(R.layout.main);  
  14.         initView();  
  15.     }  
  16.       
  17.     public String[] getData(){  
  18.         String[] arr={  
  19.             "xml","hibernate","spring","android","coreJava"   
  20.         };  
  21.         return arr;  
  22.     }  
  23.       
  24.     ListView listView;  
  25.     private void initView() {  
  26.         // TODO Auto-generated method stub  
  27.         listView=(ListView) findViewById(R.id.lv_data);  
  28.                                         /**     1.创建数组适配器(四个参数) 
  29.                                          * this:环境,需要访问资源 
  30.                                          * R.layout.item1:确定在那个布局资源中显示 
  31.                                          * R.id.tv_data:确定显示在布局资源的的那个组件中 
  32.                                          * getData():提供显示的数据源 
  33.                                          */  
  34. //      1.  ArrayAdapter<String> adapter=new ArrayAdapter<String>(this,R.layout.item1, R.id.tv_data, getData());  
  35.                                         /** 
  36.                                          * 2.说明xml文件中布局结构是:<LinearLayout> 
  37.                                          *                          <TextView></TextView> 
  38.                                          *                   </LinearLayout> 
  39.                                          *   采用四个参数创建数组适配器可以正常显示; 
  40.                                          */  
  41. //      2.  ArrayAdapter<String> adapter=new ArrayAdapter<String>(this,R.layout.item2, R.id.tv_data, getData());  
  42.                                         /**     3.创建数组适配器(三个参数) 
  43.                                          * android.R.layout.simple_list_item_1:系统提供的布局;可以正常显示。 
  44.                                          *   但提出了一个问题?上面提供的布局是<LinearLayout> 
  45.                                          *                                  <TextView></TextView> 
  46.                                          *                             </LinearLayout> 
  47.                                          *    还是直接就是一个<TextView></TextView>. 
  48.                                          *    在item3中证明 <TextView></TextView>布局可以正常显示;把item3的布局改成 
  49.                                          *                              <LinearLayout> 
  50.                                          *                                  <TextView></TextView> 
  51.                                          *                              </LinearLayout>显示时抛出异常。 
  52.                                          */  
  53. //      3.  ArrayAdapter<String> adapter=new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, getData());  
  54.                                     /**    通过自己定义的数组资源来创建数组适配器,并在item3上显示 
  55.                                      * R.array.words:自己定义的资源,在res/values/array.xml中; 
  56.                                      * R.layout.item3:把数组中的数据在这个控件上显示。 
  57.                                      */  
  58.         ArrayAdapter adapter=ArrayAdapter.createFromResource(this, R.array.words, R.layout.item3);  
  59.         listView.setAdapter(adapter);  
  60.                   
  61.           
  62.     }  
  63. }  
下面是xml文件:

main.xml如下:

[html] view plaincopy
  1. <?xml version="1.0" encoding="utf-8"?>  
  2. <ListView xmlns:android="http://schemas.android.com/apk/res/android"  
  3.     android:id="@+id/lv_data"  
  4.     android:layout_width="fill_parent"  
  5.     android:layout_height="fill_parent"  
  6.     android:orientation="vertical" >  
  7. </ListView>  


item1.xml代码如下:
[html] view plaincopy
  1. <?xml version="1.0" encoding="utf-8"?>  
  2. <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"  
  3.     android:layout_width="fill_parent"  
  4.     android:layout_height="wrap_content"  
  5.     android:orientation="horizontal"  
  6.     >  
  7.   
  8.     <ImageView  
  9.         android:layout_width="48dp"  
  10.         android:layout_height="48dp"  
  11.         android:src="@drawable/ic_launcher" />  
  12.     <TextView   
  13.         android:id="@+id/tv_data"  
  14.         android:layout_width="0dp"  
  15.         android:layout_height="48dp"  
  16.         android:layout_weight="1.0"  
  17.         android:gravity="center_vertical"  
  18.         />  
  19. </LinearLayout>  

item2.xml代码如下:


[html] view plaincopy
  1. <?xml version="1.0" encoding="utf-8"?>  
  2. <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"  
  3.     android:layout_width="fill_parent"  
  4.     android:layout_height="wrap_content"  
  5.     android:orientation="horizontal"  
  6.     >  
  7.     <TextView   
  8.         android:id="@+id/tv_data"  
  9.         android:layout_width="0dp"  
  10.         android:layout_height="48dp"  
  11.         android:layout_weight="1.0"  
  12.         android:gravity="center_vertical"  
  13.         />  
  14. </LinearLayout>  


item3.xml代码如下:
[html] view plaincopy
  1. <?xml version="1.0" encoding="utf-8"?>  
  2. <TextView xmlns:android="http://schemas.android.com/apk/res/android"  
  3.     android:layout_width="fill_parent"  
  4.     android:layout_height="48dp"  
  5.     android:textSize="20sp"  
  6.     >  
  7. </TextView>  


原创粉丝点击