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年8月2日
    10
  • Ubuntu 21.04 lts_Ubuntu 21.10

    Ubuntu 21.04 lts_Ubuntu 21.10Ubuntu粉丝!是时候对下一个大版本Ubuntu22.04LTS感到兴奋了。是的。这是一个长期支持版本,将支持五年,直到2027年4月。即将发布的LTS版本带来了几个新功能。如果您使用的是Ubuntu20.04LTS,您会注意到许多视觉变化。如果您使用的是Ubuntu21.10,您已经看到了很多变化,但在即将发布的版本中仍然会有一些新变化。在我向您展示22.04中新的预期新功能之前,让我们看看它什么时候发布。Ubuntu22.04发布时间表Ubunt

    2025年8月27日
    8
  • 用Eclipse的tomcat插件启动tomcat时报错:

    用Eclipse的tomcat插件启动tomcat时报错:

    2022年3月7日
    48
  • Vue(七)SPA 单页面及应用方式「建议收藏」

    Vue(七)SPA 单页面及应用方式「建议收藏」vue:单页面应用SPA。

    2022年10月13日
    2
  • IIC总线协议详解[通俗易懂]

    转自:https://www.cnblogs.com/aaronLinux/p/6218660.html1 I2C总线物理拓扑结构     I2C总线在物理连接上非常简单,分别由SDA(串行数据线)和SCL(串行时钟线)及上拉电阻组成。通信原理是通过对SCL和SDA线高低电平时序的控制,来产生I2C总线协议所需要的信号进行数据的传递。在总线空闲状态时,这两根线一般被上面所接的上拉电阻…

    2022年4月14日
    74
  • Android模拟器修改hosts文件详解

    Android模拟器修改hosts文件详解Android模拟器修改hosts文件详解前言在开发中遇到这样需求,需要在hosts文件中将某个网址域名与其对应的IP地址建立一个关联,比如关联这样一个ip:123.45.67.89www.unknown.net那么在Android开发中测试我们需要修改Android测试机(模拟器)的hosts文件。

    2022年10月20日
    3

发表回复

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

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