zoukankan      html  css  js  c++  java
  • 【转】android之在activity中控制另一个activity的UI更新_如何在activity之间传递handler

    来自:http://blog.csdn.net/jason0539/article/details/18055259

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

    1.在MyAPP中定义属性handler

    1.在MyAPP中定义属性handler

    1. package jason.com;  
    2.   
    3. import jason.com.MasterActivity.MyHandler;  
    4. import android.app.Application;  
    5.   
    6. /** 
    7. * 自己实现Application,实现数据共享 
    8. * @author jason 
    9. */  
    10. public class MyAPP extends Application {  
    11. // 共享变量  
    12. private MyHandler handler = null;  
    13.   
    14. // set方法  
    15. public void setHandler(MyHandler handler) {  
    16. this.handler = handler;  
    17. }  
    18.   
    19. // get方法  
    20. public MyHandler getHandler() {  
    21. return handler;  
    22. }  
    23.   
    24. }  


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

    1. @Override  
    2. public void onCreate(Bundle savedInstanceState) {  
    3.   
    4. super.onCreate(savedInstanceState);  
    5. setContentView(R.layout.main);  
    6.   
    7.   
    8. mAPP = (MyAPP) getApplication();  
    9. handler = new MyHandler();  
    10. tv = (TextView) findViewById(R.id.tv);  
    11. btn_to = (Button) findViewById(R.id.btn_to);  
    12.   
    13. // 设置监听器  
    14. btn_to.setOnClickListener(new OnClickListener() {  
    15. @Override  
    16. public void onClick(View v) {  
    17. // 设置共享变量  
    18. mAPP.setHandler(handler);  
    19. // 启动另一个Activity  
    20. Intent intent = new Intent(MasterActivity.this,  
    21. ToChangeViewActivity.class);  
    22. startActivity(intent);  
    23. }  
    24. });  
    25.   
    26. }  


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

    1. protected void onCreate(Bundle savedInstanceState) {  
    2. super.onCreate(savedInstanceState);  
    3. setContentView(R.layout.show);  
    4.   
    5. mAPP = (MyAPP) getApplication();  
    6. // 获得该共享变量实例  
    7. mHandler = mAPP.getHandler();  
    8. findViewById(R.id.btn_chang).setOnClickListener(new OnClickListener() {  
    9.   
    10. @Override  
    11. public void onClick(View v) {  
    12. // 发送消息  
    13. mHandler.sendEmptyMessage(CHANGED);  
    14. ToChangeViewActivity.this.finish();  
    15. }  
    16. });  
    17.   
    18. }  

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

  • 相关阅读:
    监听手机晃动(摇一摇)SensorEventListener
    adb logcat 命令行用法
    设计模式:观察者模式
    设计模式学习笔记-观察者模式
    Android中Parcelable序列化总结
    2048 Puzzle游戏攻略
    projecteuler---->problem=14----Longest Collatz sequence
    桥模式设计模式进入Bridge
    SessionA和pplication网上聊天室的网络范例
    [ACM] hdu 5045 Contest (减少国家Dp)
  • 原文地址:https://www.cnblogs.com/mochaMM/p/5125092.html
Copyright © 2011-2022 走看看