http://www.cnblogs.com/Seven-cjy/p/6101555.html 是基础上修改 MainActivity.java

/winxinmff/src/com/example/winxinmff/MainActivity.java

package com.example.winxinmff;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map; import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemClickListener;
import android.widget.ListView;
import android.widget.SimpleAdapter; import com.example.entity.Message; public class MainActivity extends Activity { private ListView lv;
private List<Message> messageList = new ArrayList<Message>();
private List<Map<String, Object> > messageList2 = new ArrayList<Map<String, Object> >();
private SimpleAdapter sa; protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.weixin); // 定义一个界面与数据的混合体 // 模拟读取数据库或者互联网
for (int i = 0; i < 20; i++) { // 模拟20条数据
/*
Message p = new Message();
p.setTou1("xxx");
p.setUserName("不对外开放 高内聚 ");
p.setLastMessage("匿名内部类也就是没有名字的内部类匿名内部类也就是没有名字的内部类");
p.setDatetime("11.11");
messageList.add(p);
*/ // 定义一个界面与数据的混合体,一个item 代表一行记录
Map<String, Object> item = new HashMap<String, Object>();
// 一行记录,包含多个控件
item.put("tou", R.drawable.a);
item.put("userName", "不对外开放 高内聚"+i);
item.put("lasMessage", "匿名内部类也就是没有名字的内部类匿名内部类也就是没有名字的内部类");
item.put("datetime", "12.12");
messageList2.add(item); } lv = (ListView) findViewById(R.id.listView1);
sa = new SimpleAdapter(this,
messageList2, // data 不仅仅是数据,而是一个与界面耦合的数据混合体
R.layout.listview_item_layout,
new String[] {"tou","userName","lasMessage","datetime"}, //from 从哪来
new int[] {R.id.imageView1, R.id.tv_userName,R.id.tv_lasMessage,R.id.tv_datetime}); lv.setAdapter(sa);
lv.setOnItemClickListener(new OnItemClickListener() { public void onItemClick(AdapterView<?> parent, View view,
int position, long id) {
Map<String, Object> item = messageList2.get(position);
item.put("userName", "阿凡达"+ position);
sa.notifyDataSetChanged(); //Toast.makeText(MainActivity.this, (String)item.get("userName"), Toast);
}
}); // 简单理解为VC绑在一起
/*
* baseAdapter 店长推荐 5 星级
lv.setAdapter(new BaseAdapter() {
private View view; public int getCount() { // 返回多少条记录
return messageList.size();
} // 每一个item项, 返回一次界面
public View getView(int position, View convertView, ViewGroup parent) { // 布局不变,数据变 // 如果缓存为空 ,我们生成新的布局作为1个 item
if (convertView == null) {
Log.i("info: ", "没有缓存,重新生成" + position);
LayoutInflater inflater = MainActivity.this.getLayoutInflater(); // 因为 getView() 返回的对象, adapter 会自动赋给 List
view = inflater.inflate(R.layout.listview_item_layout, null);
} else {
Log.i("info: ", "有缓存,不需要重新生成" + position);
view = convertView;
} Message m = messageList.get(position); TextView tv_userName = (TextView) view.findViewById(R.id.tv_userName);
tv_userName.setText(m.getUserName() + position); TextView tv_lasMessage = (TextView) view.findViewById(R.id.tv_lasMessage);
tv_lasMessage.setText(m.getLastMessage()); TextView tv_datetime = (TextView) view.findViewById(R.id.tv_datetime);
tv_datetime.setText(m.getDatetime()); return view;
} public long getItemId(int position) {
return 0;
} public Object getItem(int position) {
return null;
}
}); */ } }

MainActivity.java

2016-11-28

android 模拟微信消息 OnItemClickListener()方法 [3]的更多相关文章

  1. android 模拟微信消息框 BaseAdapter()方法 [2]

    在昨天的微信布局的基础上加内容 http://www.cnblogs.com/Seven-cjy/p/6098024.html 项目下/res/layout下创建一个 listview_layout. ...

  2. Android模拟微信主页面的Demo

    Android模拟微信主页面的Demo 效果图如下: 项目结构图如下: ContanctFragment: package com.demo.moniwexin; import android.app ...

  3. Android仿微信QQ等实现锁屏消息提醒

    demo代码如下: import android.content.Intent; import android.os.Bundle; import android.support.v7.app.App ...

  4. Chrome模拟手机浏览器(iOS/Android)的三种方法,亲测无误!

    大网站都有推出自己的手机访问版本页面,不管是新闻类还是视频网站,我们在电脑是无法直接访问到手机网站的,比如我经常访问一个3g.qq.com这个手机站点,如果在电脑上直接打开它,则会跳转到其它页面,一般 ...

  5. 用Fiddler可以设置浏览器的UA 和 手动 --Chrome模拟手机浏览器(iOS/Android)的三种方法,亲测无误!

    附加以一种软件的方法是:用Fiddler可以设置浏览器的UA 以下3种方法是手动的 通过伪装User-Agent,将浏览器模拟成Android设备. 第一种方法:新建Chrome快捷方式 右击桌面上的 ...

  6. Android模拟、实现、触发系统按键事件的方法

     Android模拟.实现.触发系统按键事件的方法 /** * 模拟系统按键. * * @param keyCode */ public static void onKeyEvent(final ...

  7. android 模拟抢红包 原理

    Android微信抢红包外挂 源代码 标签: 微信 抢红包 外挂 插件 2015-02-20 22:59 30211人阅读 评论(16) 收藏 举报  分类: Android(58)  版权声明:本文 ...

  8. Android中微信抢红包助手的实现

    参考(感谢作者):http://www.jianshu.com/p/cd1cd53909d7 http://blog.csdn.net/jiangwei0910410003/article/detai ...

  9. ListView模拟微信好友功能

    ListView模拟微信好友功能 效果图: 分析: 1.创建listView 2.创建数据 3.创建适配器 将数据放到呈现数据的容器里面. 将这个容器(带数据)连接适配器. 其实是直接在我们自己写的a ...

随机推荐

  1. lightoj 1198 最大权重匹配

    题目链接:http://lightoj.com/volume_showproblem.php?problem=1198 #include <cstdio> #include <cst ...

  2. 什么是:VGA SVGA XGA SXGA

    经常可以看到VGA这些专业术语,通常这些重要技术指标指的是液晶屏(TFT LCD)的分辨率. TFT是英文Thin Film Transistor的缩写,中文意思是薄膜晶体管. VGA(Video G ...

  3. rnqoj-57-找啊找啊找GF-二维背包

    简单的二维背包问题. 数组t[j][k]记录时间 数组dp[j][k]记录数量 保证数量的前提下,时间最少 #include<stdio.h> #include<string.h&g ...

  4. gcc -I -L -l区别

    我们用gcc编译程序时,可能会用到“-I”(大写i),“-L”(大写l),“-l”(小写l)等参数,下面做个记录: 例: gcc -o hello hello.c -I /home/hello/inc ...

  5. 动画Rig设置为Legacy

    The animation state AimUp could not be played because it couldn't be found!Please attach an animatio ...

  6. Java基础知识强化之集合框架笔记04:Collection集合的基本功能测试

    1. Collection集合的基本功能测试: package cn.itcast_01; import java.util.ArrayList; import java.util.Collectio ...

  7. java 良好开发规范

    使用继承时,不要为了部分功能而去继承,老子就是这么傲娇! 2.  在类中,无参构造函数尽量写出来,可以减少很多不必要的错误. 因为一旦类中你 写出了带参的构造函数,那么系统就不会自动给出无参的构造函数 ...

  8. 2015 南阳ccpc The Battle of Chibi (uestc 1217)

    题意:给定一个序列,找出长度为m的严格递增序列的个数. 思路:用dp[i][j]表示长度为i的序列以下标j结尾的总个数.三层for循环肯定超时,首先离散化,离散化之后就可以用树状数组来优化,快速查找下 ...

  9. codevs 1994 排队 排列组合+高精度

    /* 数学题0.0 最后答案:A(n,n)*A(n+1,2)*A(n+3,m)+A(n,n)*C(m,1)*A(2,2)*C(n+1,1)*A(n+2,m-1); 简单解释一下 +之前的很显然 先排男 ...

  10. codevs 1378 选课 (树形DP)

    #include<iostream> #include<cstdio> #include<cstring> using namespace std; ][],f[] ...