Android在一个activity改变另一个activity的组件

application相关知识

   Application和Activity,Service一样是android框架的一个系统组件,当android程序启动时系统会创建一个 application对象,用来存储系统的一些信息。通常我们是不需要指定一个Application的,这时系统会自动帮我们创建,如果需要创建自己 的Application,也很简单创建一个类继承 Application并在manifest的application标签中进行注册(只需要给Application标签增加个name属性把自己的 Application的名字定入即可)。
android系统会为每个程序运行时创建一个Application类的对象且仅创建一个,所以Application可以说是单例 (singleton)模式的一个类.且application对象的生命周期是整个程序中最长的,它的生命周期就等于这个程序的生命周期。因为它是全局 的单例的,所以在不同的Activity,Service中获得的对象都是同一个对象。所以通过Application来进行一些,数据传递,数据共享 等,数据缓存等操作。

实现一个activity改变另一个activity的组件

1 定义一个类 继承Application

并给定属性flag 也就是相当于全局变量 在manifest配置文件中,把默认的application换成我们自己定义的

public class MyApp extends Application {
    private boolean flag;

    public boolean getFlag() {
        return flag;
    }

    public void setFlag(boolean flag) {
        this.flag = flag;
    }
}

//manifest配置文件
 "com.wyq.test.MyApp"/>

2 在需要交互的两个类中进行处理

MainActivity中有一个按钮和一个文本框,按钮的监听跳转到OtherActivty,在OtherActivity中修改全局变量,等到再次返回MainActivity中时,需要判断全局变量,根据变量修改文本框显示的值

//MainActivity中:
@Override
    protected void onResume() {
        // TODO Auto-generated method stub
        super.onResume();
        MyApp myApp = (MyApp) MainActivity.this.getApplication();
        if (myApp.getFlag()) {
            ((TextView) findViewById(R.id.tv)).setText("修改了");
            // 重置参数
            myApp.setFlag(false);
        } else {
            ((TextView) findViewById(R.id.tv)).setText("没修改");
        }
    }
//otherActivity中:
@Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_other);

        ((Button) findViewById(R.id.update))
                .setOnClickListener(new OnClickListener() {
                    @Override
                    public void onClick(View arg0) {
                        // TODO Auto-generated method stub
                        MyApp myApp = (MyApp) OtherActivity.this
                                .getApplication();
                        myApp.setFlag(true);
                    }
                });
    }

转自:
http://blog.163.com/weishao_blog/blog/static/215103029201332610446832/

你可能感兴趣的:(Android笔记)