android之在activity中控制另一个activity的UI更新_如何在activity之间传递handler

遇到一个问题,需要在一个activity中控制另一个acitivity做一些更新,没想到传递handler的方法,通过以下方式解决。1.在MyAPP中定义属性handlerpackage jason.com;import jason.com.MasterActivity.MyHandler;import android.app.Application;/*** 自己

大家好,又见面了,我是全栈君。

遇到一个问题,需要在一个activity中控制另一个acitivity做一些更新,没想到传递handler的方法,通过以下方式解决。

1.在MyAPP中定义属性handler

package jason.com;

import jason.com.MasterActivity.MyHandler;
import android.app.Application;

/**
* 自己实现Application,实现数据共享
* @author jason
*/
public class MyAPP extends Application {
// 共享变量
private MyHandler handler = null;

// set方法
public void setHandler(MyHandler handler) {
this.handler = handler;
}

// get方法
public MyHandler getHandler() {
return handler;
}

}

2、在主activity 中给MyAPP的属性handler赋值

@Override
public void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);
setContentView(R.layout.main);


mAPP = (MyAPP) getApplication();
handler = new MyHandler();
tv = (TextView) findViewById(R.id.tv);
btn_to = (Button) findViewById(R.id.btn_to);

// 设置监听器
btn_to.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
// 设置共享变量
mAPP.setHandler(handler);
// 启动另一个Activity
Intent intent = new Intent(MasterActivity.this,
ToChangeViewActivity.class);
startActivity(intent);
}
});

}

3、在另一个activity中获取MyAPP中handler进行传值

protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.show);

mAPP = (MyAPP) getApplication();
// 获得该共享变量实例
mHandler = mAPP.getHandler();
findViewById(R.id.btn_chang).setOnClickListener(new OnClickListener() {

@Override
public void onClick(View v) {
// 发送消息
mHandler.sendEmptyMessage(CHANGED);
ToChangeViewActivity.this.finish();
}
});

}

 

除了这个方案,又想到了另外一个比较变通的方案,利用Broadcast机制来实现,见地址:http://blog.csdn.net/jason0539/article/details/18075293

 

 

作者:jason0539

微博:http://weibo.com/2553717707

博客:http://blog.csdn.net/jason0539(转载请说明出处)

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/121371.html原文链接:https://javaforall.net

(0)
上一篇 2022年3月10日 下午10:00
下一篇 2022年3月10日 下午11:00


相关推荐

  • Win10 pycharm anaconda 配置多环境走一波!

    Win10 pycharm anaconda 配置多环境走一波!没想到 第一篇博客是关于 win10pycharm 如何配置 conda 多环境的 Win10pycharm 配置多环境走一波 首先在进行 pycharm 配置前 确保你有打开 pycharm 的管理员权限 如果你是在一台服务器上和大家共同使用 这里就必须要管理员权限 右键管理员身份运行 pycharm 如果是自己的电脑就算了 如果你在创建过程中遇到了 Permissi

    2026年3月27日
    3
  • Ip地址归属地_电脑ip地址归属地查询

    Ip地址归属地_电脑ip地址归属地查询点击↑上方↑蓝色“编了个程”关注我~这是Yasin的第61篇原创文章最近各大社交平台都悄悄上线了一个新功能,就是显示用户的IP归属地,境内精确到省级,境外精确到国家或地区。在个人信息和每条评论上面都有,也是炸出来了一波xx在xx国的账号,各大号主纷纷出视频解释自己的ip归属为什么在国内,有说用代理的,有说给家人登录的,也有说在国内有工作室(团队)的……今天从技…

    2026年4月15日
    8
  • JS弹出模态窗口下拉列表特效

    效果体验:http://hovertree.com/texiao/js/20/或者扫描二维码在手机体验:点击选择城市后,在弹出的层中的输入框,输入英文字母h,会有HoverTree和Hewenqi

    2021年12月22日
    48
  • 1.23 lseek函数[通俗易懂]

    1.23 lseek函数[通俗易懂]参考:牛客网C++高薪求职项目《Linux高并发服务器开发》1.22read、write函数专属优惠链接:https://www.nowcoder.com/courses/cover/live/504?coupon=AvTPnSG

    2022年6月24日
    26
  • windows定时任务schtasks命令详细解

    SCHTASKS/Create[/Ssystem[/Uusername[/P[password]]]][/RUusername[/RPpassword]]/SCschedule[/MOmodifier][/Dday][/Mmonths][/Iidletime]/TNtaskname/TRtaskrun[/STstarttim…

    2022年4月4日
    300
  • 制作CYDIA发布源的DEB文件,详解!

    制作CYDIA发布源的DEB文件,详解!原文地址 制作 CYDIA 发布源的 DEB 文件 详解 作者 NeoZ nbsp 首先需要一个可以编辑和压制的环境 Ubuntu Debian 是 deb 文件系统的原生系统 在兼容性和处理性能上最好 如果你没有 LinuxDebian 或 Ubuntu 系统的机器 不要紧 可以随时用 VMwareStatio 或 VirtualBox 虚拟机来安装一个 我用的 Ubuntu12 0 4 全新系

    2026年3月16日
    1

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号