ArrayAdapter和SimpleAdapter技术总结

ArrayAdapter比较简单,但它只能用于显示文字。而SimpleAdapter则有很强的扩展性,可以自定义出各种效果

 

ArrayAdapter;的数据可以是数组或者是队列

 

     // 获得下拉框对象

AutoCompleteTextView textview = (AutoCompleteTextView) this
.findViewById(R.id.textView);
       //下拉框对象需要一个数据源,使用list队列添加数据
String[] array = { "设置", "wlan", "移动网络", "声音","显示","存储","电池","引用程序" };
/*第一个:上下文对象
第二个:布局的样式
第三个:数据*/
ArrayAdapter<String> arrayAdapter =new ArrayAdapter<String>(this,
android.R.layout.simple_expandable_list_item_1,array );
//设置适配器
textview.setAdapter(arrayAdapter);

 

 

SimpleAdapter;可以有图片和文字,一时难以理解

 

  // 参数1:上下文

// 参数2:图片和文字数据

// 参数3:用来显示List中一条数据的布局文件

// 参数4:HashMap中K的数组

// 参数5:元素的布局文件中的视图id

SimpleAdapter adapter = new SimpleAdapter(this,list,R.layout.grid_item,from,to); 

 

 

 得到参数二;

 

// 获得数据源
ArrayList<HashMap<String, Object>> list = new ArrayList<HashMap<String, Object>>();
//图片资源
static int[] imgs = { R.drawable.a1, R.drawable.a2, R.drawable.a3,
R.drawable.a4, R.drawable.a5, R.drawable.a6, R.drawable.a7,
R.drawable.a8, R.drawable.a9 }; 
//遍历图片
for(int i=0;i<imgs.length;i++){
HashMap<String, Object> map =new HashMap<String, Object>();
map.put("k1", imgs[i]);
map.put("k2", "程序"+i);
list.add(map);
}

 

  

参数三; 用来显示List中一条数据的布局文件

重新定义一个布局文件,

  grid_item.xml

<ImageView
        android:id="@+id/img"
        android:layout_width="50dp"
        android:layout_height="50dp" />

    <TextView
        android:id="@+id/text"
        android:layout_width="50dp"
        android:layout_height="wrap_content"
        android:gravity="center_horizontal" />

 

   参数四:获取HashMap中K的数组 就是k1和k2

 

String[] from={"k1","k2"};

 

 

参数五:获取布局文件的id

 int[] to = { R.id.img, R.id.text };

 

    由于布局文件已经在SimpleAdapter创建时创建了对象所以直接R.id.img, R.id.text 就获取到grid_item.xml中的id

 

你可能感兴趣的:(android,SimpleAdapter,ArrayAdapter,高级组件基础)