展会信息港展会大全

android开发之在activity中控制另一个activity的UI更新_如何在activity之间传递handler
来源:互联网   发布日期:2016-01-14 10:28:01   浏览:1153次  

导读:遇到一个问题,需要在一个activity中控制另一个acitivity做一些更新,没想到传递handler的方法,通过以下方式解决。1.在MyAPP中定义属性handlerpackage ...

遇到一个问题,需要在一个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();

}

});

}

作者:jason0539

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

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

赞助本站

人工智能实验室

相关热词: android开发 教程

相关内容
AiLab云推荐
展开

热门栏目HotCates

Copyright © 2010-2024 AiLab Team. 人工智能实验室 版权所有    关于我们 | 联系我们 | 广告服务 | 公司动态 | 免责声明 | 隐私条款 | 工作机会 | 展会港