Android開發系列(六) ListView使用教程二——QQ連絡人清單

來源:互聯網
上載者:User

上一篇講了ListView的基本使用方式,是通過SimpleAdapter適配器來設定,但是這種方法無法實現在每一行添加按鈕,添加圖片,動態添加或者刪除某一行,或者使捲軸自動滑動到最底端的要求,因此需要自訂一個適配器類繼承BaseAdapter進而實現更加豐富的方法。

  另外由於這已經不是我第一次做這個總結了,為了增加一點挑戰,這次就做一個 QQ好友名單的ListView

  

  首先還是xml布局檔案,在其中添加ListView控制項:

主布局layout_main.xml

             

然後是每一行ListItem的布局,採用LinerLayout布局,一些注意的點都在裡面:

                                                     

因為這裡使用的是自己定義的MyAdapter類,可以更靈活的實現列表的一些功能,比如和資料庫相聯絡,動態更新資料、添加按鈕控制項等等,在本例中模仿QQ列表為頭像設定成了ImageButton,後面的附圖中的一個Toast資訊就是點擊映像做出的相應,當然點擊一行也可以做出相應,這個後續可能會對QQ程式做一些擴充,如增加網路模組,聊天視窗等等。到時候再進一步討論。

下面是MyAdapter類,這個類最好和MainActivity類放在同一個包裡。

 java.util.* android.widget.*  MyAdapter  Context context=  ArrayList<HashMap<String,Object>> list=          MyAdapter(Context context, <HashMap<String, Object>> list, String[] from, .context =.resources =.list =.from =.to =  getCount() {                 Object getItem( arg0) {                 getItemId( itemId) {                  ImageButton ctPhoto= TextView ctName=,ctSign=        =(ImageButton)convertView.findViewById(to[0=(TextView)convertView.findViewById(to[1=(TextView)convertView.findViewById(to[2 ImageListener   ImageListener(.position=             String str=list.get(position).get(from[1+" is Clicked" View getView(                =        (convertView====inflater.inflate(resources,);                viewHolder==(ViewHolder)convertView.getTag();                    012 convertView;     


  最後就是MainActivity類了,與因為MyAdapter的封裝方式與SimpleAdpter是一樣額,因此這裡MainActivity的操作基本不變。

 java.util.*  MainActivity     String[] from={"userPhoto","userName","userSign"};               [] to=    [] photoRes=={"暗夜之殤","街角的幸福","靜悄悄","憤怒的小胖"={"Where is my love...","有些事終於想開了","總有一天會尋找到自己的幸福","誰再叫我小胖我跟誰急..."    ArrayList<HashMap<String,Object>> list=<String,Object> map== == ArrayList<HashMap<String,Object>>( i=0; i<4; i++= HashMap<String,Object>();                map.put("userPhoto""userName""userSign"        MyAdapter adapter= MyAdapter(  

最後附上結果圖[感覺比幾個月前初學時有點更美觀了一些]

這幾個頭像是我自己下載的圖片,其對應的資源地址在 MainActivity中用一個 photoRes數組表示的~

 

關於事件響應的一些問題等進一步擴充項目時再續。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.