1. 程式人生 > >android 實現QQ好友列表

android 實現QQ好友列表

 在某些android開發群裡,看到有些新手問怎麼實現QQ好友列表,其實網上一搜挺多的。接觸Android,也才一年的時間,大部分時間花在工作上(解bug。。。),介面上開發很少參與。自己維護的系統應用裡,有個ExpandableListView的介面(其實android例子APIDemo也有類似的例子)就在這裡寫個Demo供新手參考。

        ExpandableListView的用法:難點就是重寫BaseExpandableListAdapter及提供的資料來源。

        下面看看繼承BaseExpandableListAdapter的介面卡:

  1. <span xmlns=
    "http://www.w3.org/1999/xhtml">package com.xyz.expande;  
  2. import java.util.List;  
  3. import android.app.AlertDialog;  
  4. import android.content.Context;  
  5. import android.graphics.Bitmap;  
  6. import android.graphics.Bitmap.Config;  
  7. import android.graphics.Canvas;  
  8. import android.graphics.Paint;  
  9. import
     android.graphics.PixelFormat;  
  10. import android.graphics.PorterDuff.Mode;  
  11. import android.graphics.PorterDuffXfermode;  
  12. import android.graphics.Rect;  
  13. import android.graphics.RectF;  
  14. import android.graphics.drawable.BitmapDrawable;  
  15. import android.graphics.drawable.Drawable;  
  16. import android.util.Log;  
  17. import android.view.LayoutInflater;  
  18. import android.view.View;  
  19. import android.view.ViewGroup;  
  20. import android.widget.BaseExpandableListAdapter;  
  21. import android.widget.ImageView;  
  22. import android.widget.TextView;  
  23. publicclass ExpandeAdapter extends BaseExpandableListAdapter {  
  24.     private Context mContext;  
  25.     private LayoutInflater mInflater = null;  
  26.     private String[] mGroupStrings = null;  
  27.     private List<List<Item>> mData = null;  
  28.     public ExpandeAdapter(Context ctx, List<List<Item>> list) {  
  29.         mContext = ctx;  
  30.         mInflater = (LayoutInflater) mContext  
  31.                 .getSystemService(Context.LAYOUT_INFLATER_SERVICE);  
  32.         mGroupStrings = mContext.getResources().getStringArray(R.array.groups);  
  33.         mData = list;  
  34.     }  
  35.     publicvoid setData(List<List<Item>> list) {  
  36.         mData = list;  
  37.     }  
  38.     @Override
  39.     publicint getGroupCount() {  
  40.         // TODO Auto-generated method stub
  41.         return mData.size();  
  42.     }  
  43.     @Override
  44.     publicint getChildrenCount(int groupPosition) {  
  45.         // TODO Auto-generated method stub
  46.         return mData.get(groupPosition).size();  
  47.     }  
  48.     @Override
  49.     public List<Item> getGroup(int groupPosition) {  
  50.         // TODO Auto-generated method stub
  51.         return mData.get(groupPosition);  
  52.     }  
  53.     @Override
  54.     public Item getChild(int groupPosition, int childPosition) {  
  55.         // TODO Auto-generated method stub
  56.         return mData.get(groupPosition).get(childPosition);  
  57.     }  
  58.     @Override
  59.     publiclong getGroupId(int groupPosition) {  
  60.         // TODO Auto-generated method stub
  61.         return groupPosition;  
  62.     }  
  63.     @Override
  64.     publiclong getChildId(int groupPosition, int childPosition) {  
  65.         // TODO Auto-generated method stub
  66.         return childPosition;  
  67.     }  
  68.     @Override
  69.     publicboolean hasStableIds() {  
  70.         // TODO Auto-generated method stub
  71.         returnfalse;  
  72.     }  
  73.     @Override
  74.     public View getGroupView(int groupPosition, boolean isExpanded,  
  75.             View convertView, ViewGroup parent) {  
  76.         // TODO Auto-generated method stub
  77.         if (convertView == null) {  
  78.             convertView = mInflater.inflate(R.layout.group_item_layout, null);  
  79.         }  
  80.         GroupViewHolder holder = new GroupViewHolder();  
  81.         holder.mGroupName = (TextView) convertView  
  82.                 .findViewById(R.id.group_name);  
  83.         holder.mGroupName.setText(mGroupStrings[groupPosition]);  
  84.         holder.mGroupCount = (TextView) convertView  
  85.                 .findViewById(R.id.group_count);  
  86.         holder.mGroupCount.setText("[" + mData.get(groupPosition).size() + "]");  
  87.         return convertView;  
  88.     }  
  89.     @Override
  90.     public View getChildView(int groupPosition, int childPosition,  
  91.             boolean isLastChild, View convertView, ViewGroup parent) {  
  92.         // TODO Auto-generated method stub
  93.         if (convertView == null) {  
  94.             convertView = mInflater.inflate(R.layout.child_item_layout, null);  
  95.         }  
  96.         ChildViewHolder holder = new ChildViewHolder();  
  97.         holder.mIcon = (ImageView) convertView.findViewById(R.id.img);  
  98.         holder.mIcon.setBackgroundDrawable(getRoundCornerDrawable(  
  99.                 getChild(groupPosition, childPosition).getImageId(), 10));  
  100.         holder.mChildName = (TextView) convertView.findViewById(R.id.item_name);  
  101.         holder.mChildName.setText(getChild(groupPosition, childPosition)  
  102.                 .getName());  
  103.         holder.mDetail = (TextView) convertView.findViewById(R.id.item_detail);  
  104.         holder.mDetail.setText(getChild(groupPosition, childPosition)  
  105.                 .getDetail());  
  106.         return convertView;  
  107.     }  
  108.     @Override
  109. 相關推薦

    android 實現QQ好友列表

     在某些android開發群裡,看到有些新手問怎麼實現QQ好友列表,其實網上一搜挺多的。接觸Android,也才一年的時間,大部分時間花在工作上(解bug。。。),介面上開發很少參與。自己維護的系統應用裡,有個ExpandableListView的介面(其實andro

    利用web端介面實現QQ好友列表獲取、QQ群成員獲取列表的例項分析

    當開放API成為歷史潮流不可阻擋之時,騰訊亦只能與時俱進,但騰訊為了保持江湖的壟斷地位,不會隨意公開像QQ號這樣的客戶資源,於是乎,你能通過webQQ查詢到的,也只能是使用者或群的暱稱,絕非QQ號碼或群號。抓包發現:webQQ每次成功登陸後,接下來一般會去實現""和"。而斷線

    獲取QQ好友列表QQ分組資訊、QQ群成員資料介面實現

    完整原始碼下載 點選下載完整原始碼 如果對你有用,請給個Star,你的支援,是我最大的動力 1 獲取所有QQ 這裡主要通過抓包,抓取QQ空間中的資料 記得將訪問空間許可權改為QQ好友 獲取QQ好友列表   介面地址

    QQ好友列表樹形列表簡單實現方式

            以前在網上瞎轉悠的時候就發現很多人為用Java實現QQ登陸後的面板的問題感到十分頭疼,最近我因在寫模擬QQ的專案,故不可或缺的遇到了這一個問題,在網上我google了,百度了,最終發現的是有很多人被這一問題困擾,卻沒有解決的方案,估計是那些寫出來了的人,沒

    基於Qt的類似QQ好友列表抽屜效果的實現

    轉載地址: http://blog.csdn.net/shuideyidi/article/details/30619167 前段時間在忙畢業設計,所以一直沒有更新部落格。今天答辯完以後,將對我的畢業設計進行模組展示,供Qt初學者進行參考。 畢業設計題目:Linux系統下基於Qt的區域網即時通訊系統設計與

    QQ好友列表數據模型封裝

    key post setvalue ron mod board oftype super uiview QQ好友中的信息較多。假設我們單獨從plist 中直接取出數據 是能夠解決這個問題 可是相當復雜。以為列表中分組 。每組中還有不同信息 大致模型是 數組套數組

    jQuery實現QQ分組列表效果

    一、實現效果 1.未點選分組標題之前,所有成員都隱藏 2.點選分組標題之後,隱藏的要顯示,已經顯示的要隱藏 3.在點選一個分組標題時,其他已經展開的分組,要隱藏 二、程式碼 <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0

    仿android手機qq訊息列表中刪除按鈕效果

    原文來自於http://blog.csdn.net/softrain624?viewmode=contents 這是一個按鈕的漸進漸出效果,實現起來很簡單我們下面就開始仿照這個效果做一個demo。 這個效果實現起來其實還是很簡單的最關鍵的就是知道ClipDarwable這個

    Android 實現qq第三方登入並獲取qq基本資訊

    ###②配置AndroidMainfest.xml <!-- 新增許可權 --> <uses-permission android:name="android.permission.INTERNET" /> <uses-perm

    Android 實現資料的列表顯示

    介面操作: <?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="

    Android實現類似股票列表聯動

    package com.example.leftrightdemo; import java.util.ArrayList; import java.util.List; import android.app.Activity; import android.graphics.Color; import

    js五道經典練習題--第四道qq好友列表

    <!DOCTYPE html><html><head><meta charset="UTF-8"><title></title><style>*{margin: 0;padding: 0;}u

    android實現頂部滑動列表

    (1)定義一個xml  viewpager控制元件<?xml version="1.0" encoding="utf-8"?> <FrameLayout xmlns:android="http://schemas.android.com/apk/res/an

    獲取QQ好友列表

    地址:http://s.web2.qq.com/api/get_user_friends2 提交方式:Post POST引數: r={"h":"hello","vfwebqq":"d820f55

    獲取所有QQ好友列表以及好友資訊

    完整原始碼下載 點選下載完整原始碼 如果對你有用,請給個Star,你的支援,是我最大的動力 1 獲取所有QQ 這裡主要通過抓包,抓取QQ空間中的資料 記得將訪問空間許可權改為QQ好友 這裡uin 為你的QQ號 offset 偏移量 ,每次增加 50 即可

    Android 高仿QQ 好友分組列表

    本帖最後由 憤怒的小鳥 於 2012-11-4 10:53 編輯實現的效果如下: 用ExpandableListView實現,先看Activity的程式碼: public class BuddyActivity extends Activity {      ExpandableListView exp

    實現QQ、微信、新浪微博和百度第三方登錄(Android Studio)

    wiki protocol super cli 路徑 參考 syn jar包 all 前言: 對於大多數的APP都有第三方登錄這個功能,自己也做過幾次,最近又有一個新項目用到了第三方登錄,所以特意總結了一下關於第三方登錄的實現,並拿出來與大家一同分享; 各大開放平臺註冊

    java在線聊天項目1.2版 ——開啟多個客戶端,分別實現數據庫註冊和登錄功能後,成功登陸則登錄框消失,好友列表窗出現

    false als blog string def iat ets cat med 登錄框消失語句 dispose(); 好友列表窗出現 使用new FriendsFrame(phone,s); 登陸對話框代碼修改如下: package com.swift.frame;

    Python3實現QQ機器人自動爬取百度文庫的搜索結果並發送給好友(主要是爬蟲)

    OS __main__ end aid 機器 https code __name__ gbk 一、效果如下: 二、運行環境: win10系統;python3;PyCharm 三、QQ機器人用的是qqbot模塊 用pip安裝命令是: pip

    不加好友實現QQ線上程式碼狀態臨時會話

    網友在介紹怎麼樣使用QQ來強制聊天,才想到以前一直遇到的QQ線上生成程式碼後,遇到的必須新增好友才能聊天的一個疑問。   公告:“QQ線上狀態”V2.0正式釋出,解決了QQ2009使用者點選“線上狀態”後須新增好友才能對話的問題,提高了臨時會話使用的安全性, 請您儘快升級。