Application的作用

Application可实现数据共享

例如:

一.新建一个空的工程,并新建一个App类,继承自Application

public class App extends Application {
    private String textData="default";

    public void setTextData(String textData) {
        this.textData = textData;
    }

    public String getTextData() {
        return textData;
    }
}

二.新建两个布局资源文件main1,main2,同时新建一个Main2类。main1.xml与main2.xml的内容相同,如下所示:

三.重写Main2.java的onCreate函数(MainActivity同)

  private TextView textView;
    private EditText editText;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main2);
        textView = (TextView) findViewById(R.id.textView);
        editText = (EditText) findViewById(R.id.editText);
        textView.setText("The share data is "+getApp().getTextData());
        findViewById(R.id.btnSaveData).setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                ((App)getApplication()).setTextData(editText.getText().toString());//保存数据到Application
                textView.setText("The share data is "+editText.getText().toString());
            }
        });
    }
public App getApp(){
    return (App) getApplicationContext();
}

四.修改AndroidManifest配置文件

 <application
        android:name = ".App"//自定义的Aplication
        android:allowBackup="true"
        android:icon="@mipmap/ic_launcher"
        android:label="@string/app_name"
        android:theme="@style/AppTheme" >
        <activity
            android:name=".MainActivity"
            android:label="Main1" >
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
        <activity android:name=".Main2"
            android:label = "Main2">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

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

将两个Activity都定义为launcher类型。

五.运行结果

 

posted @ 2015-08-07 10:23  Rosanne  阅读(1003)  评论(0编辑  收藏  举报