AndroidDev 板


LINE

※ 引述《laijimmy (JLKING)》之铭言: : 我想请问,如果我想利用不同页面中的按钮, : 点击後会跳到另一个页面并且执行其中某一项动作该怎麽做?? : 求解!!感谢~
1F:推 colleen110: intent传参数给新的activity判断11/12 17:02
2F:推 sweet00914: Bundle11/12 17:11
3F:推 givemepass: 写listener11/12 17:59
4F:推 xisland: setContentView11/12 19:08
我是想从activityB里面的button点击後跳到activityA中执行移动画面到该地点, 我的activityA是一个google map v2的画面,这样也能用intent吗?该怎麽做? 求解~谢谢~ 实做简单的Listener 模拟你的需求 假设有AB 两个Activity 当B传送一段文字 A会即时更新 (B点击button A立即移动画面到该地点) 先宣告一个通知中心 public class NoticeCenter { private static NoticeCenter mNoticeCenter; private ArrayList<OnDataChangedListener> mOnDataChangedListener; //singleton 确保只有一个实体 private NoticeCenter(){} public static NoticeCenter getInstance(){ if(null == mNoticeCenter){ mNoticeCenter = new NoticeCenter(); mNoticeCenter.init(); } return mNoticeCenter; } private void init(){ mOnDataChangedListener = new ArrayList<OnDataChangedListener>(); } //observe pattern public interface OnDataChangedListener{ public void onDataChanged(String msg); } public void addOnDataChangedListener(OnDataChangedListener listener){ mOnDataChangedListener.add(listener); } public void removeOnDataChangedListener(OnDataChangedListener listener){ mOnDataChangedListener.remove(listener); } public void notifyDataChanged(String msg){ for(OnDataChangedListener listener : mOnDataChangedListener){ if(listener != null){ listener.onDataChanged(msg); } } } } 这个通知中心包含了两个模式 独体模式 跟 观察者模式 独体模式确保这个类别只会生成一个物件 观察者模式则是可以即时通知所有有注册的物件 怎麽使用? public class AActivity extends Activity { private TextView msgTextView; private Button button; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.a_activity); msgTextView = (TextView) findViewById(R.id.msg); button = (Button) findViewById(R.id.a_to_b_btn); button.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { Intent intent = new Intent(); intent.setClass(AActivity.this, BActivity.class); startActivityForResult(intent, 0); } }); NoticeCenter.getInstance().addOnDataChangedListener(new OnDataChangedListener() { @Override public void onDataChanged(String msg) { msgTextView.setText(msg); } }); } } 上面有两个事件 一个是Button按下去的事件 会传送到B activity 另外一个事件是对通知中心进行注册 那B activity做些甚麽 public class BActivity extends Activity { private Button sendBtn; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.b_activity); sendBtn = (Button) findViewById(R.id.send_btn); sendBtn.setOnClickListener(new OnClickListener() { @Override public void onClick(View arg0) { NoticeCenter.getInstance() .notifyDataChanged("msg from b"); finish(); } }); } } 只有一个Button事件 当Button按下去则会传送字串给有注册的物件 并且关闭这个Activity 这样就达到即时更新的效果 那有人就会说, startActivityForResult就可以做到这样的事情, 等它回来再把值塞TextView内。 没错! 但是它做不到同时多个画面或物件进行注册时, 达到同时通知的效果, 而且这个方法可以传任何物件, 不用实做序列化。 参考看看 程式码 http://uploadingit.com/file/he5h6xrimuhilqoq/SigletonAndObserveDemo.zip --



※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 111.250.150.91
※ 文章网址: http://webptt.com/cn.aspx?n=bbs/AndroidDev/M.1415896668.A.EC8.html
5F:推 pkmilk: 推 11/15 12:19







like.gif 您可能会有兴趣的文章
icon.png[问题/行为] 猫晚上进房间会不会有憋尿问题
icon.pngRe: [闲聊] 选了错误的女孩成为魔法少女 XDDDDDDDDDD
icon.png[正妹] 瑞典 一张
icon.png[心得] EMS高领长版毛衣.墨小楼MC1002
icon.png[分享] 丹龙隔热纸GE55+33+22
icon.png[问题] 清洗洗衣机
icon.png[寻物] 窗台下的空间
icon.png[闲聊] 双极の女神1 木魔爵
icon.png[售车] 新竹 1997 march 1297cc 白色 四门
icon.png[讨论] 能从照片感受到摄影者心情吗
icon.png[狂贺] 贺贺贺贺 贺!岛村卯月!总选举NO.1
icon.png[难过] 羡慕白皮肤的女生
icon.png阅读文章
icon.png[黑特]
icon.png[问题] SBK S1安装於安全帽位置
icon.png[分享] 旧woo100绝版开箱!!
icon.pngRe: [无言] 关於小包卫生纸
icon.png[开箱] E5-2683V3 RX480Strix 快睿C1 简单测试
icon.png[心得] 苍の海贼龙 地狱 执行者16PT
icon.png[售车] 1999年Virage iO 1.8EXi
icon.png[心得] 挑战33 LV10 狮子座pt solo
icon.png[闲聊] 手把手教你不被桶之新手主购教学
icon.png[分享] Civic Type R 量产版官方照无预警流出
icon.png[售车] Golf 4 2.0 银色 自排
icon.png[出售] Graco提篮汽座(有底座)2000元诚可议
icon.png[问题] 请问补牙材质掉了还能再补吗?(台中半年内
icon.png[问题] 44th 单曲 生写竟然都给重复的啊啊!
icon.png[心得] 华南红卡/icash 核卡
icon.png[问题] 拔牙矫正这样正常吗
icon.png[赠送] 老莫高业 初业 102年版
icon.png[情报] 三大行动支付 本季掀战火
icon.png[宝宝] 博客来Amos水蜡笔5/1特价五折
icon.pngRe: [心得] 新鲜人一些面试分享
icon.png[心得] 苍の海贼龙 地狱 麒麟25PT
icon.pngRe: [闲聊] (君の名は。雷慎入) 君名二创漫画翻译
icon.pngRe: [闲聊] OGN中场影片:失踪人口局 (英文字幕)
icon.png[问题] 台湾大哥大4G讯号差
icon.png[出售] [全国]全新千寻侘草LED灯, 水草

请输入看板名称,例如:iOS站内搜寻

TOP