android 模拟微信消息 OnItemClickListener()方法 [3]
在 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]的更多相关文章
- android 模拟微信消息框 BaseAdapter()方法 [2]
在昨天的微信布局的基础上加内容 http://www.cnblogs.com/Seven-cjy/p/6098024.html 项目下/res/layout下创建一个 listview_layout. ...
- Android模拟微信主页面的Demo
Android模拟微信主页面的Demo 效果图如下: 项目结构图如下: ContanctFragment: package com.demo.moniwexin; import android.app ...
- Android仿微信QQ等实现锁屏消息提醒
demo代码如下: import android.content.Intent; import android.os.Bundle; import android.support.v7.app.App ...
- Chrome模拟手机浏览器(iOS/Android)的三种方法,亲测无误!
大网站都有推出自己的手机访问版本页面,不管是新闻类还是视频网站,我们在电脑是无法直接访问到手机网站的,比如我经常访问一个3g.qq.com这个手机站点,如果在电脑上直接打开它,则会跳转到其它页面,一般 ...
- 用Fiddler可以设置浏览器的UA 和 手动 --Chrome模拟手机浏览器(iOS/Android)的三种方法,亲测无误!
附加以一种软件的方法是:用Fiddler可以设置浏览器的UA 以下3种方法是手动的 通过伪装User-Agent,将浏览器模拟成Android设备. 第一种方法:新建Chrome快捷方式 右击桌面上的 ...
- Android模拟、实现、触发系统按键事件的方法
Android模拟.实现.触发系统按键事件的方法 /** * 模拟系统按键. * * @param keyCode */ public static void onKeyEvent(final ...
- android 模拟抢红包 原理
Android微信抢红包外挂 源代码 标签: 微信 抢红包 外挂 插件 2015-02-20 22:59 30211人阅读 评论(16) 收藏 举报 分类: Android(58) 版权声明:本文 ...
- Android中微信抢红包助手的实现
参考(感谢作者):http://www.jianshu.com/p/cd1cd53909d7 http://blog.csdn.net/jiangwei0910410003/article/detai ...
- ListView模拟微信好友功能
ListView模拟微信好友功能 效果图: 分析: 1.创建listView 2.创建数据 3.创建适配器 将数据放到呈现数据的容器里面. 将这个容器(带数据)连接适配器. 其实是直接在我们自己写的a ...
随机推荐
- .NET中的程序集(Assembly)
在.NET 中,新引入了一个程序集的概念,就是指经由编译器编译得到的,供CLR进一步编译执行的那个中间产物,在WINDOWS系统中,它一般表现为.dll,或者是.exe的格式,但是要注意,它们跟普通意 ...
- Spring入门一
一 简介 1.Spring为企业应用的开发提供了一个轻量级的解决方案,该解决方案包括:基于依赖注入的核心机制.基于AOP的声明式事务管理.与多种持久层技术 的整合,以及优秀的Web MVC框架等等.可 ...
- 点击Enter键,文本框焦点改变 分类: WinForm 2014-04-15 10:30 223人阅读 评论(0) 收藏
一个例子: 一个简单的 登陆界面,有用户名.密码文本框.登陆按钮. 想要实现的效果是,用户输入用户名之后,点击Enter键进入到下一个文本框,同理,输入完密码之后,登陆按钮获得焦点,再次点击Ente ...
- 设计模式21---设计模式之享元模式(Flyweight)(结构型)
1.讲解享元模式(结构型) 1.1享元模式定义 运用共享技术有效地支持大量细粒度对象. 享元:把内部状态共享出来 1.2享元模式要点 重点在于分离变与不变. 把一个对象的状态分为内部状态和外部状态,内 ...
- Cocos3.0测试版发布(中文)
最新的cocos2d-x 3.0版本,我们的目标不仅是改进渲染机制,增加对2.5D的支持,基于组件的系统功能,和更好的Label功能.同时 我们希望能够进一步优化引擎,并且使用更友好的C++ API ...
- 《HTML5 从入门到精通--7.6.3 单元格垂直跨度——rowspan》
单元格除了能够在水平方向上跨列,还能够垂直方向上跨行.跨行设置须要使用rowspan參数. 语法 <td rowspan="单元格跨行数"> 语法解释 与水平跨度相相应 ...
- 使用Listener准备application作用域数据
在程序中.有些数据我们希望在程序启动的时候就准备好,而且仅仅准备一次,放在application作用域中,这时候.我们一般会用Listener来准备这些数据. 可是,用Listener准备applic ...
- provider: 命名管道提供, error: 40 - 无法打开 SQL Server 联系)
李和server连接错误. 在连接 SQL Server 2005 时刻.在默认设置 SQL Server 不同意的远程连接可能导致此故障. (provider: 命名管道提供, error: 40 ...
- LayoutInflater和inflate()方法的使用方法
public static LayoutInflaterfrom(Context context) { LayoutInflaterLayoutInflater = (LayoutInflater)c ...
- discuz! X3 门户文章添加字段
1. 首先需要去数据表里[llgp_portal_article_title]手动添加需要添加的字段. (注意: 数据表前缀依据自己的设置而定) 2. 修改模版template\default\por ...