码迷,mamicode.com
首页 > 移动开发 > 详细

Android Application

时间:2015-08-16 15:07:35      阅读:122      评论:0      收藏:0      [点我收藏+]

标签:

多个组件之间数据共享

举例:

两个Activity之间数据共享

Application 对同一个应用程序是唯一的,所以可以使用Application进行数据共享

技术分享

定义两个Activity:  MainActivity.java 和 MainActivity2.java, 代码是一样的

TextView tv;
EditText et;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    //setContentView(R.layout.activity_main_activity2);
    setContentView(R.layout.activity_main2);

    tv = (TextView) findViewById(R.id.tv);
    et = (EditText) findViewById(R.id.et);
    
    tv.setText("共享数据:" + getApp().getTextData());
    
    findViewById(R.id.btnTextData).setOnClickListener(new OnClickListener() {
        @Override
        public void onClick(View v) {
            getApp().setTextData(et.getText().toString());
            tv.setText("共享数据:" + et.getText().toString());
        }
    });
}

public App getApp() {
    return ((App)getApplicationContext());
}

 

定义一个类App,集成Application

public class App extends Application {
    
    private String textData = "default";
    
    public void setTextData(String textData) {
        this.textData = textData;
    }
    public String getTextData() {
        return textData;
    }
}

 

修改AndroidManifest.xml文件, 使用自定义的Application,两个Activity都是入口:

<application
    android:name="com.carloz.learnapplication.App"
    android:allowBackup="true"
    android:icon="@drawable/ic_launcher"
    android:label="@string/app_name"
    android:theme="@style/AppTheme" >
    <activity
        android:name=".MainActivity"
        android:label="@string/app_name" >
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />

            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
    </activity>
    <activity
        android:name="com.carloz.learnapplication.MainActivity2"
        android:label="@string/title_activity_main_activity2" >
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />

            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
    </activity>
</application>

 

结果,在一个Activity修改App的数据,在另一个Activity都能获取到

 

Android Application

标签:

原文地址:http://www.cnblogs.com/carlo/p/4734291.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!