日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

ListView的Adapter使用(绑定数据) 之 自定义每一项的布局去绑定数据(二)

發布時間:2023/12/20 编程问答 28 豆豆
生活随笔 收集整理的這篇文章主要介紹了 ListView的Adapter使用(绑定数据) 之 自定义每一项的布局去绑定数据(二) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

緊接上篇:

接下來是自定義布局的例子,我們大家先看下程序出來的效果圖:

?

代碼是:

1.???? 首先自定義布局,我們命名一個custom_list_layout.xml的布局文件,代碼如下:

?

  • <?xml?version="1.0"?encoding="utf-8"?>?
  • <RelativeLayout?xmlns:android="http://schemas.android.com/apk/res/android"?
  • ????android:layout_width="fill_parent"?android:layout_height="fill_parent">?
  • ????<ImageView?android:id="@+id/p_w_picpathView"?android:layout_width="48dip"?
  • ????????android:layout_height="48dip"?android:scaleType="fitCenter"?
  • ????????android:adjustViewBounds="true"?android:layout_alignParentLeft="true"?
  • ????????android:layout_margin="5dip"></ImageView>?
  • ????<TextView?android:id="@+id/number"?android:layout_width="wrap_content"?
  • ????????android:layout_height="wrap_content"?android:textSize="14dip"?
  • ????????android:layout_toRightOf="@+id/p_w_picpathView"?android:layout_alignTop="@+id/p_w_picpathView"></TextView>?
  • ????<TextView?android:id="@+id/name"?android:layout_width="wrap_content"?
  • ????????android:layout_height="wrap_content"?android:textSize="10dip"?
  • ????????android:layout_toRightOf="@+id/p_w_picpathView"?android:layout_below="@+id/number"></TextView>?
  • </RelativeLayout>?
  • 2.???? 我們程序中的代碼:

    ?

  • /**?
  • ?*??
  • ?*/?
  • package?com.cz.list.demo;?
  • ?
  • import?java.util.ArrayList;?
  • import?java.util.HashMap;?
  • ?
  • import?android.app.Activity;?
  • import?android.content.Context;?
  • import?android.os.Bundle;?
  • import?android.util.Log;?
  • import?android.view.LayoutInflater;?
  • import?android.view.View;?
  • import?android.view.ViewGroup;?
  • import?android.widget.ImageView;?
  • import?android.widget.ListView;?
  • import?android.widget.SimpleAdapter;?
  • import?android.widget.TextView;?
  • ?
  • /**?
  • ?*?@author?CZ?
  • ?*??
  • ?*/?
  • public?class?CustomSimpleAdapterDemo?extends?Activity?{?
  • ????private?ListView?listView;?
  • ?
  • ????@Override?
  • ????protected?void?onCreate(Bundle?savedInstanceState)?{?
  • ????????//?TODO?Auto-generated?method?stub?
  • ????????super.onCreate(savedInstanceState);?
  • ????????setContentView(R.layout.array_list_layout);?
  • ????????listView?=?(ListView)?findViewById(R.id.array_list);?
  • ?
  • ????????CustomSimpleAdapter?customSimpleAdapter?=?new?CustomSimpleAdapter(?
  • ????????????????CustomSimpleAdapterDemo.this,?getHashMapData(),?
  • ????????????????R.layout.custom_list_layout);?
  • ?
  • ????????listView.setAdapter(customSimpleAdapter);?
  • ????}?
  • ?????
  • ????/**?
  • ?????*??
  • ?????*?@author?CZ?
  • ?????*??自定義的類去繼承SimpleAdapter?
  • ?????*/?
  • ????private?class?CustomSimpleAdapter?extends?SimpleAdapter?{?
  • ????????private?Context?context;?
  • ????????private?ArrayList<HashMap<String,?Object>>?data;?
  • ????????private?int?layoutResource;?
  • ?
  • ????????/**?
  • ?????????*?@param?context?
  • ?????????*?@param?data?
  • ?????????*?@param?resource?
  • ?????????*?@param?from?
  • ?????????*?@param?to??構造函數?
  • ?????????*/?
  • ????????public?CustomSimpleAdapter(Context?context,?
  • ????????????????ArrayList<HashMap<String,?Object>>?data,?int?resource)?{?
  • ????????????super(context,?data,?resource,?null,?null);?
  • ????????????this.context?=?context;?
  • ????????????this.data?=?data;?
  • ????????????this.layoutResource?=?resource;?
  • ????????}?
  • ?
  • ????????class?ViewHolder?{?
  • ????????????ImageView?picture;?
  • ????????????TextView?number;?
  • ????????????TextView?name;?
  • ????????}?
  • ?
  • ????????/*?
  • ?????????*?(non-Javadoc)?
  • ?????????*??
  • ?????????*?@see?android.widget.SimpleAdapter#getView(int,?android.view.View,?
  • ?????????*?android.view.ViewGroup)?
  • ?????????*/?
  • ????????@Override?
  • ????????public?View?getView(int?position,?View?convertView,?ViewGroup?parent)?{?
  • ????????????LayoutInflater?layoutInflater?=?(LayoutInflater)?getSystemService(LAYOUT_INFLATER_SERVICE);?
  • ????????????View?layoutView?=?layoutInflater.inflate(layoutResource,?null);?
  • ????????????ViewHolder?viewHolder?=?new?ViewHolder();?
  • ????????????viewHolder.picture?=?(ImageView)?layoutView?
  • ????????????????????.findViewById(R.id.p_w_picpathView);?
  • ????????????viewHolder.number?=?(TextView)?layoutView.findViewById(R.id.number);?
  • ?
  • ????????????viewHolder.name?=?(TextView)?layoutView.findViewById(R.id.name);?
  • ????????????viewHolder.picture.setImageResource(Integer.parseInt(data.get(?
  • ????????????????????position).get("p_w_picpathView").toString()));?
  • ????????????viewHolder.number.setText(data.get(position).get("id").toString());?
  • ????????????Log.e("id",?data.get(position).get("name").toString());?
  • ????????????viewHolder.name.setText(data.get(position).get("name").toString());?
  • ????????????return?layoutView;?
  • ????????}?
  • ????}?
  • ?
  • ????/**?
  • ?????*??
  • ?????*?@return?
  • ?????*?Year:2011?Date:2011-10-23?Time:下午05:46:45?
  • ?????*?Author:CZ?
  • ?????*?TODO??自定義的方法綁定數據,為了避免圖片全部都一樣,我們讓三張圖片循環綁定。?
  • ?????*/?
  • ????private?ArrayList<HashMap<String,?Object>>?getHashMapData()?{?
  • ????????ArrayList<HashMap<String,?Object>>?hashData?=?new?ArrayList<HashMap<String,?Object>>();?
  • ????????for?(int?i?=?0;?i?<?10;?i++)?{?
  • ????????????HashMap<String,?Object>?mItem?=?new?HashMap<String,?Object>();?
  • ????????????mItem.put("id",?"當前的編號是:"?+?i);?
  • ????????????mItem.put("name",?"名字是美女"?+?i);?
  • ????????????switch?(i?%?3)?{?
  • ????????????case?0:?
  • ????????????????mItem.put("p_w_picpathView",?R.drawable.test1);?
  • ????????????????break;?
  • ????????????case?1:?
  • ????????????????mItem.put("p_w_picpathView",?R.drawable.test2);?
  • ????????????????break;?
  • ????????????case?2:?
  • ????????????????mItem.put("p_w_picpathView",?R.drawable.test3);?
  • ????????????????break;?
  • ????????????default:?
  • ????????????????mItem.put("p_w_picpathView",?R.drawable.test4);?
  • ????????????????break;?
  • ????????????}?
  • ????????????hashData.add(mItem);?
  • ????????}?
  • ????????return?hashData;?
  • ?
  • ????}?
  • ?
  • }?
  • 有了之前的例子做基礎,這時候看起來是不是會清楚一些呢,綁定數據是一樣的,只不過是多綁定了圖片的數據。

    然后我們重寫了SimpleAdapter,? 構造函數我們自己定義參數,需要說明的是:

    1)???? getView() 方法返回是的是一個View值,我們綁定完數據之后,把這個View返回

    2)???? 我們自己寫的layout,要先通過轉化,轉化成為一個View, 找到她里面對應的TextView,然后取出List 表中相對應位置的HashMap,取出數據顯示到相應的ImageView TextView上面.

    希望對新手有所幫助..

    讓人糾結的編譯器啊,我都貼了兩遍...

    ?

    轉載于:https://blog.51cto.com/april19880317/695923

    總結

    以上是生活随笔為你收集整理的ListView的Adapter使用(绑定数据) 之 自定义每一项的布局去绑定数据(二)的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。