ListView模拟微信好友功能

ListView模拟微信好友功能

效果图:

分析:

1、创建listView

2、创建数据

3、创建适配器

  将数据放到呈现数据的容器里面。

  将这个容器(带数据)连接适配器。

4、ListView设置适配器

  

代码:

 1 package fry;
 2
 3 import java.util.ArrayList;
 4 import java.util.List;
 5
 6 import com.example.weChatFriends.R;
 7
 8 import android.app.Activity;
 9 import android.os.Bundle;
10 import android.util.Log;
11 import android.view.View;
12 import android.widget.AdapterView;
13 import android.widget.AdapterView.OnItemClickListener;
14 import android.widget.AdapterView.OnItemSelectedListener;
15 import android.widget.ArrayAdapter;
16 import android.widget.ListView;
17 import android.widget.RelativeLayout;
18 import android.widget.Toast;
19
20 public class Activity01 extends Activity implements OnItemSelectedListener,OnItemClickListener{
21     private FriendModel friend;
22     private ListView listView;
23     private List<FriendModel> list;
24     private weChatListAdapter adapter;
25     //存资源图片ID
26     private int[] imageID=new int[]{R.drawable.image1,R.drawable.image2,
27             R.drawable.image3,R.drawable.image4,R.drawable.image5,R.drawable.image6,
28             R.drawable.image7,R.drawable.image8,R.drawable.image9,R.drawable.image10,
29             R.drawable.image11};
30     //存昵称
31     private String[] nickName=new String[]{"张三","吴京","战狼","神烦xp","木鱼"
32             ,"水心","系大大","电影","血怒","创奇","讲故事"
33     };
34     @Override
35     protected void onCreate(Bundle savedInstanceState) {
36         // TODO Auto-generated method stub
37         super.onCreate(savedInstanceState);
38         setContentView(R.layout.activity01);
39         init();
40         setData();
41
42
43     }
44     private void setData() {
45         //这里要是写成for(int i:imageID),那么i就是资源id,例如2130837505
46         for(int i=0;i<imageID.length;i++){
47             FriendModel friend1=new FriendModel();
48             //System.out.println(i);
49             friend1.setImageNum(imageID[i]);
50             friend1.setNickName(nickName[i]);
51             friend1.setSignature("我要做比海贼王还强大的人");
52             list.add(friend1);
53         }
54         adapter=new weChatListAdapter(list, this);
55         listView.setAdapter(adapter);
56
57     }
58     private void init() {
59         listView=(ListView) findViewById(R.id.listView);
60         listView.setOnItemSelectedListener(this);
61         listView.setOnItemClickListener(this);
62         friend=new FriendModel();
63         list=new ArrayList<FriendModel>();
64
65
66     }
67     /*
68      * Callback method to be invoked when an item in this view has been selected. This callback is invoked only when the newly selected position is different from the previously selected position or if there was no selected item.(non-Javadoc)
69      * @see android.widget.AdapterView.OnItemSelectedListener#onItemSelected(android.widget.AdapterView, android.view.View, int, long)
70      */
71     @Override
72     public void onItemSelected(AdapterView<?> parent, View view, int position,
73             long id) {
74
75     }
76     @Override
77     public void onNothingSelected(AdapterView<?> parent) {
78         // TODO Auto-generated method stub
79
80     }
81     @Override
82     public void onItemClick(AdapterView<?> parent, View view, int position,
83             long id) {
84         FriendModel friendItem=(FriendModel) parent.getItemAtPosition(position);
85         String s=friendItem.getNickName();
86         Log.d("onItemClick","s");
87         Toast.makeText(this, s, Toast.LENGTH_SHORT).show();
88
89     }
90
91
92
93 }

主界面

 1 package fry;
 2
 3 import java.util.List;
 4
 5
 6
 7
 8
 9
10
11
12
13 import com.example.weChatFriends.R;
14
15 import android.content.Context;
16 import android.view.View;
17 import android.view.ViewGroup;
18 import android.widget.BaseAdapter;
19 import android.widget.ImageView;
20 import android.widget.TextView;
21
22 public class weChatListAdapter extends BaseAdapter{
23     private List<FriendModel> myData;
24     private Context mContext;
25     private ImageView avator;
26     private TextView nickName1;
27     private TextView signature1;
28     private FriendModel friend;
29
30
31     public weChatListAdapter(List<FriendModel> data, Context mContext) {
32         super();
33         this.myData = data;
34         this.mContext = mContext;
35     }
36
37     //How many items are in the data set represented by this Adapter.
38     @Override
39     public int getCount() {
40         // TODO Auto-generated method stub
41         return this.myData.size();
42     }
43
44     //Get the data item associated with the specified position in the data set.
45     @Override
46     public Object getItem(int position) {
47         // TODO Auto-generated method stub
48         return this.myData.get(position);
49     }
50
51     //Get the row id associated with the specified position in the list.
52     @Override
53     public long getItemId(int position) {
54         // TODO Auto-generated method stub
55         return position;
56     }
57
58     //Get a View that displays the data at the specified position in the data set.
59     @Override
60     public View getView(int position, View convertView, ViewGroup parent) {
61         // TODO Auto-generated method stub
62         View view=View.inflate(mContext, com.example.weChatFriends.R.layout.item_friend, null);
63         //System.out.println(position);
64         friend=myData.get(position);
65         int ImageID=friend.getImageNum();
66         String nickName=friend.getNickName();
67         String signature=friend.getSignature();
68         avator=(ImageView) view.findViewById(R.id.iv_avator);
69         nickName1=(TextView)view.findViewById(R.id.tv_nickname);
70         signature1=(TextView)view.findViewById(R.id.tv_signature);
71         avator.setImageResource(ImageID);
72         nickName1.setText(nickName);
73         signature1.setText(signature);
74         return view;
75     }
76
77 }

自己创建的适配器

 1 package fry;
 2
 3 public class FriendModel {
 4     //头像的图片id
 5     private int imageNum;
 6     //昵称
 7     private String nickName;
 8     //个性签名
 9     private String signature;
10
11
12
13     public int getImageNum() {
14         return imageNum;
15     }
16     public void setImageNum(int imageNum) {
17         this.imageNum = imageNum;
18     }
19     public String getNickName() {
20         return this.nickName;
21     }
22     public void setNickName(String nickName) {
23         this.nickName = nickName;
24     }
25     public String getSignature() {
26         return signature;
27     }
28     public void setSignature(String signature) {
29         this.signature = signature;
30     }
31
32
33 }

列表中联系人数据的封装

1 <?xml version="1.0" encoding="utf-8"?>
2 <ListView xmlns:android="http://schemas.android.com/apk/res/android"
3     android:id="@+id/listView"
4     android:layout_width="match_parent"
5     android:layout_height="wrap_content" >
6
7 </ListView>

ListView

 1 <?xml version="1.0" encoding="utf-8"?>
 2 <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
 3     android:layout_width="wrap_content"
 4     android:layout_height="wrap_content" >
 5
 6     <ImageView
 7         android:id="@+id/iv_avator"
 8         android:layout_width="70dp"
 9         android:layout_height="70dp"
10         android:src="@drawable/image1"
11         />
12     <TextView
13         android:id="@+id/tv_nickname"
14         android:layout_width="wrap_content"
15         android:layout_height="wrap_content"
16         android:layout_toRightOf="@+id/iv_avator"
17         android:layout_centerVertical="true"
18         android:layout_marginLeft="20dp"
19         android:text="张三"
20         />
21     <TextView
22         android:id="@+id/tv_signature"
23         android:layout_width="wrap_content"
24         android:layout_height="wrap_content"
25         android:layout_centerVertical="true"
26         android:layout_alignParentRight="true"
27         android:text="我要做比海贼王更强大的男人"
28         />
29
30 </RelativeLayout>

用于存放数据的容器

时间: 2024-08-01 20:59:33

ListView模拟微信好友功能的相关文章

andriod 实现新浪、QQ空间、微信朋友圈、微信好友分享功能

前言:自己在学习的过程中的一些操作过程,对分享的一些理解.下面就讲解一下: 下载地址:http://download.csdn.net/detail/u014608640/7490357 首先,我们需要去ShareSdk官方网站http://sharesdk.cn/ 去下载ShareSDK ,然后我们会有4个文件: 根据我自己在学习的过程中只用到了第一个文件夹的 libs目录的2个项目,这2个是必须要的,是ShareSdk提供的,然后需要将这2个放入到自己做的项目当中去,在Res目录下有一个 S

解决iOS app集成分享到QQ空间,微信好友,朋友圈等功能,苹果审核无法通过的问题

最近在提交应用到App Store时,因为App集成QQ登录,分享到QQ空间.微信等功能,而被拒,十分郁闷:百思之下,想到一个办法,可以解决此问题. 在将要显示分享平台列表时,根据判断当前设备是否安装了某款App,而进行动态调整,具体操作如下: 首先导入相关头文件 #import <TencentOpenAPI/TencentApiInterface.h> #import "WXApi.h" NSMutableArray *platforms = [[NSMutableAr

微信核心功能全解析

最近做了一套及时通讯软件,其中很多功能和微信是相仿的,下面详细介绍一下具体实现. 做及时通讯肯定要用xmpp协议,微信和一些及时通讯软件也是用的这套协议,只是纵向开发深度不同. 1.复写语音按钮 @SuppressLint("NewApi") public class RecordButton extends Button  { public RecordButton(Context context) { super(context); init(); } public RecordB

Android学习--------实现增删改查数据库操作以及实现类似微信好友对话管理操作

最近的一个实验用到东西挺多,特地总结一下. 要求功能: 1.第一个页面添加歌曲名和歌手,跳到第二个页面列表显示所有记录,使用sqlite数据库 2.对于第二个页面显示的信息可以进行删除和修改操作,并自动刷新 最后我做的效果: 长按列表项弹出单个管理的菜单,像微信好友对话管理一样. 删除时可以直接删除这一条并在列表中直接显示,更新时弹出对话框更新内容提交后在列表中重新显示. 做此例遇到的困难: 1.菜单获取上下文 2.获取对话框中的内容 3.对话框按钮添加监听事件-----注意包不要导错:impo

实现微信好友列表

 ListView列表控件 Android中的列表控件非常灵活,可以自定义每一个 列表项,实际上每一个列表项就是一个View,在Android定义 了3个列表控件:ListView.ExpandableListView和Spinner, 其中Spinner就是在Windows中常见的下拉列表框. 列表的显示需要三个元素: 1.View 用来展示数据的view 2.适配器 用来把数据映射到view上的中介. 3.数据  具体的将被映射的字符串,图片,或者基本组件. 实战案例 实现微信好友列表

cacti实现微信告警功能

背景 近来受朋友所托,为他实现cacti的微信告警功能,但是在印象之中,cacti的thold插件貌似只有邮件告警功能吧?于是花了点时间在网络上搜索了相关信息,发现cacti的微信告警的信息着实很少,唯一看似可用的文章尝试了下却无法成功,在那篇文章的基础上,我修改了一下微信脚本的代码,测试成功了.故在此整理一下,供各位参看. 网上参考的原文章:http://www.itnpc.com/news/web/145117534132561.html 原理 由于cacti的thold插件本身并没有微信告

在App中添加微信分享功能

随着微信平台运用越来越普遍,在app中往往需要将看到的消息发送给微信好友,分享到朋友圈,因此就需要添加微信分享的功能.我们可以通过微信的开发者平台上的相关文档来实现这个简单的功能. 1.在微信开发者平台注册应用程序的id,通过审核后可以获得一个appid 2.有了appID后下载最新的微信终端sdk文件,SDK文件包括 libWeChatSDK.a,WXApi.h,WXApiObject.h 这三个.资料下载页面: https://open.weixin.qq.com/cgi-bin/showd

Android ListView条目全选功能,不用checkbox实现!

大家好,翻了翻以前的笔记,发现了一个我特别标记的功能,那就是ListView全选功能,顿时想起了我那个时候苦逼的生涯,由于我大学机械出身,大学毕业了都不知道什么叫代码,在58干了一段销售.实在是干不下去了,不干了就得在网上找工作,就喜欢干电脑相关的工作,有一天,一家培训机构给我打来电话让我去面试,我以为让我去工作那,谁知道是忽悠我去培训,我当然不可能花钱了,就直接回去了,想了几天,除了销售我真不知道干啥,咬咬牙,就花钱培训了.我擦,咋说这到了,不跟你们说了,还是写下面的这个功能吧,虽然很简单,但

微信好友限制人数5000个 微信公众平台是微信营销出路

刚过完520,微信就做出了一个新动作:微信好友数量将不能超过5000个,但"群不计算在内,订阅公号另计算",主要目的在于阻止大量恶意营销行为.个人微信号要成为营销工具越来越找不着方向了,微信公众平台才是出路. "这一举措实际上是为了遏制朋友圈的营销行为,因为普通用户的好友及关注的公众账号数量并不会有这么多,所以这个规定并不会阻碍普通用户使用微信."微信内部人士说. 个人微信号不好整了,整个微信公众平台吧,现在微信公众平台开发教程官方也放出,第三方的微信公众平台开放接