实现微信好友通讯录
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
开发工具与关键技术:android studio ,java;
作者:彭春怡
撰写时间:2020年 5 月18日
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
1. 这里建立一个activity用来放入头像和用户名,在另一个activity加载ListView
2. 那么现在在java类里面加载ListView的数据,先建立列表数据,图片和名称就随意点
//定义列表数据
private String[] dataList = {"1" , "2" ,"3" ,"4" };
private int[] imageId = new int[]{
R.drawable.ccc, R.drawable.ccc, R.drawable.ccc, R.drawable.ccc
};
3. 获取到ListView的id
listView = findViewById(R.id.list_view);4. 开始加载数据,先定义一个集合 List<Map<String , Object>> mapList = new ArrayList<Map<String, Object>>();
5. 循环定义好的整型数组,在循环体内定义一个Map集合将图片和名称通过键值对的方式放入mapList中
for(int i = 0 ;i<imageId.length ; i++){
Map<String , Object> map = new HashMap<String , Object>();
map.put("image" , imageId[i]);
map.put("name" , dataList[i]);
mapList.add(map);
}
6. 开始定义适配器,第一个参数是上下文对象,第二个参数是添加的集合数据,第三个参数是存放ListView的activity ,第四个参数和第五个参数都是数组对象SimpleAdapter adapter = new SimpleAdapter(mActivityContext,mapList,R.layout.activity_user_list,new String[]{"name" , "image"},
new int[]{R.id.tv_user_list , R.id.iv_user_list});7. 最后一步将定义好的适配器设置给listView listView.setAdapter(adapter);
8. 这样一个简单的微信通讯录就可以实现了,效果图如下
9. 为了更加的像微信通讯录,这里呢添加一下点击事件listView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
Map<String , Object> map = (Map<String, Object>) parent.getItemAtPosition(position);
Toast.makeText(mActivityContext, map.get("name").toString(), Toast.LENGTH_SHORT).show();
}
});
10. 添加完点击效果的图片如下
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
开发工具与关键技术:android studio ,java;
作者:彭春怡
撰写时间:2020年 5 月18日
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
1. 这里建立一个activity用来放入头像和用户名,在另一个activity加载ListView
2. 那么现在在java类里面加载ListView的数据,先建立列表数据,图片和名称就随意点
//定义列表数据
private String[] dataList = {"1" , "2" ,"3" ,"4" };
private int[] imageId = new int[]{
R.drawable.ccc, R.drawable.ccc, R.drawable.ccc, R.drawable.ccc
};
3. 获取到ListView的id
listView = findViewById(R.id.list_view);4. 开始加载数据,先定义一个集合 List<Map<String , Object>> mapList = new ArrayList<Map<String, Object>>();
5. 循环定义好的整型数组,在循环体内定义一个Map集合将图片和名称通过键值对的方式放入mapList中
for(int i = 0 ;i<imageId.length ; i++){
Map<String , Object> map = new HashMap<String , Object>();
map.put("image" , imageId[i]);
map.put("name" , dataList[i]);
mapList.add(map);
}
6. 开始定义适配器,第一个参数是上下文对象,第二个参数是添加的集合数据,第三个参数是存放ListView的activity ,第四个参数和第五个参数都是数组对象SimpleAdapter adapter = new SimpleAdapter(mActivityContext,mapList,R.layout.activity_user_list,new String[]{"name" , "image"},
new int[]{R.id.tv_user_list , R.id.iv_user_list});7. 最后一步将定义好的适配器设置给listView listView.setAdapter(adapter);
8. 这样一个简单的微信通讯录就可以实现了,效果图如下
9. 为了更加的像微信通讯录,这里呢添加一下点击事件listView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
Map<String , Object> map = (Map<String, Object>) parent.getItemAtPosition(position);
Toast.makeText(mActivityContext, map.get("name").toString(), Toast.LENGTH_SHORT).show();
}
});
10. 添加完点击效果的图片如下