SimpleAdapter与listview,gridview的组合用法
生活随笔
收集整理的這篇文章主要介紹了
SimpleAdapter与listview,gridview的组合用法
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
首先要明白SimpleAdapter構造方法的幾個參數的含義:
public SimpleAdapter(Context context, List<? extends Map<String, ?>> data, int resource, String[] from, int[] to)其中 context為上下文,一般為this.
List為要綁定到該適配器上的數據內容,為list形式;
resource為要綁定到該視圖上的基本單元的layout.xml文件,from為該list下各個鍵值對中的"鍵"的名稱,to為要綁定的基本單元layout文件
中的各個組件的id,官方文檔的解釋如下:
所以,要想使用SimpleAdapter,必須準備好這幾個資源,基本單元的視圖xml文件必須的,當然這個基本單元是為它的父容器準備的,父容器就是要放
很多基本單元的小容器,所以呢,以MVC的觀點來理解simpleadapter其實就是個C控制器,List這些就是模型M,視圖就是由listveew或者其他的
view來完成的,比如下面這個例子,就只是用了一個gridview,然后該gridview來放基本單元menu_item.xml,該基本單元由一個文字和圖片組成
一個組,一個組有即使用一個基本的視圖文件.
還是用例子來說你那個問題吧:本問題使用的是Listview:
?
再用一個gridview來完成本次記錄:
基本單元的布局文件menu_item.xml
<?xml version="1.0" encoding="utf-8"?><RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/RelativeLayout_Item"
android:layout_width="fill_parent" android:layout_height="wrap_content"
android:paddingBottom="5dip">
<ImageView android:id="@+id/item_image"
android:layout_centerHorizontal="true" android:layout_width="wrap_content"
android:layout_height="wrap_content"></ImageView>
<TextView android:layout_below="@id/item_image" android:id="@+id/item_text"
android:layout_centerHorizontal="true" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:text="選項"></TextView>
</RelativeLayout>
要顯示的視圖的主文件gridview(本例為一個popupwindow):
popupwindow.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
>
<GridView
android:id="@+id/gridview1"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:numColumns="4"
android:verticalSpacing="10dip"
android:horizontalSpacing="10dip"
android:stretchMode="columnWidth"
android:gravity="center"
/>
</LinearLayout>
Java部分代碼: GridView menuGrid=null;
final String[] menu_name_array = { "收藏網址", "刷新頁面", "日間模式", "夜間模式", "檢查網絡",
"立即登錄", "退出程序", "系統設置" };
final int [] menu_image_array={R.drawable.star,R.drawable.star,R.drawable.star,R.drawable.star,R.drawable.star,
R.drawable.star,R.drawable.star,R.drawable.star}; ? final View contentview = LayoutInflater.from(MainActivity.this).inflate(R.layout.popupwindow, null);
menuGrid = (GridView) contentview.findViewById(R.id.gridview1);
menuGrid.setAdapter(getMenuAdapter(menu_name_array,menu_image_array)); private SimpleAdapter getMenuAdapter(String[] menuNameArray,
int[] imageResourceArray) {
List<Map<String,Object>> data=new ArrayList<Map<String, Object>>();
for (int i=0;i<imageResourceArray.length;i++){
Map<String,Object> map=new HashMap<String, Object>();
map.put("item_image",imageResourceArray[i]);
map.put("item_text",menuNameArray[i]);
data.add(map);
}
SimpleAdapter simpleAdapter=new SimpleAdapter(this,data,R.layout.item_menu,new String[]{"item_text","item_image"},new int[]{R.id.item_text,R.id.item_image});
return simpleAdapter;
}
?
??
?
??
?轉載于:https://www.cnblogs.com/imqsl/p/6612541.html
總結
以上是生活随笔為你收集整理的SimpleAdapter与listview,gridview的组合用法的全部內容,希望文章能夠幫你解決所遇到的問題。