在一个activity中更改另一个activity的UI
来源:互联网 发布:js引用json文件数据 编辑:程序博客网 时间:2024/04/28 23:58
如何在一个activity中更改另一个activity的UI了,如更改另一个activity中按钮的背景图片。
在这里,我上网搜了一些资料,使用Handler共享数据,以达到其效果。
代码:
被修改UI的activity:
package mark.zhang;import android.app.Activity;import android.content.Intent;import android.graphics.Color;import android.os.Bundle;import android.os.Handler;import android.os.Message;import android.view.View;import android.view.View.OnClickListener;import android.widget.Button;import android.widget.TextView;public class MasterActivity extends Activity {// 用于msg.what值private static final int CHANGED = 0x0010;private Button btn_to = null;private TextView tv = null;private MyHandler handler = null;private MyAPP mAPP = null;@Overridepublic 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() {@Overridepublic void onClick(View v) {// 设置共享变量mAPP.setHandler(handler);// 启动另一个ActivityIntent intent = new Intent(MasterActivity.this,ToChangeViewActivity.class);startActivity(intent);}});}/** * 自己实现 Handler 处理消息更新UI * * @author mark */final class MyHandler extends Handler {@Overridepublic void handleMessage(Message msg) {super.handleMessage(msg);if(msg.what == CHANGED) { // 更新UItv.setText("changed after: I have be changed by Other Activity!");tv.setBackgroundColor(Color.BLUE);btn_to.setText("I have been changed!");btn_to.setBackgroundColor(Color.RED);}}}}
发出更改UI消息的activity:
package mark.zhang;import mark.zhang.MasterActivity.MyHandler;import android.app.Activity;import android.os.Bundle;import android.view.View;import android.view.View.OnClickListener;public class ToChangeViewActivity extends Activity {private static final int CHANGED = 0x0010;private MyAPP mAPP = null;private MyHandler mHandler = null;@Overrideprotected 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() {@Overridepublic void onClick(View v) {// 发送消息mHandler.sendEmptyMessage(CHANGED);ToChangeViewActivity.this.finish();}});}}
3.必须实现继承Application实现跨activity共享:
package mark.zhang;import mark.zhang.MasterActivity.MyHandler;import android.app.Application;/** * 自己实现Application,实现数据共享 * * @author mark * */public class MyAPP extends Application {// 共享变量private MyHandler handler = null;// set方法public void setHandler(MyHandler handler) {this.handler = handler;}// get方法public MyHandler getHandler() {return handler;}}
0 0
- 在一个activity中更改另一个activity的UI
- 在一个 Activity 中改变另一个 Activity 的 UI
- 在Activity中更改另外一个Activity中的UI
- 三种方式实现在一个Activity中控制另一个Activity的UI的更新
- 在一个Activity中启另一个Activity的方法
- 在一个Activity中获取另一个Activity的上下文
- 在一个Activity里更新另一个Activity UI
- 如何在一个Activity更新另一个Activity的UI(发送广播的方法)
- android 一个activity定时更新另一个activity的UI
- android开发之在activity中控制另一个activity的UI更新
- Android开发中在一个Activity中关闭另一个Activity
- Android开发中在一个Activity中关闭另一个Activity
- Android开发中在一个Activity中关闭另一个Activity
- Android开发中在一个Activity中关闭另一个Activity
- Android开发中在一个Activity中关闭另一个Activity
- Android开发中在一个Activity中关闭另一个Activity
- Android开发中在一个Activity中关闭另一个Activity
- Android开发中在一个Activity中关闭另一个Activity
- 去雾算法学习-Single Image Haze Removal Using Dark Channel Prior笔记
- 设计一套自己的自动化体系
- spring mvc controller间跳转 重定向 传参
- 排序树简单的构造与(前序,后序,中序)输出
- 关于qt5中“error c2001: 常量中有换行符”以及个别中文字乱码问题的解决办法
- 在一个activity中更改另一个activity的UI
- Android的网络与通信
- 手把手叫你写自定义ProgressDialog控件
- Xcode 替换功能详解
- xcode6如何导入全局头文件
- 深入理解Java:注解(Annotation)(二)——自定义注解入门
- 在switch-case中定义变量时当心被“穿越”
- netty初步
- JMX RMI相关