用Application() 实现同一个程序下数据共享

来源:互联网 发布:网络攻防交流平台 编辑:程序博客网 时间:2024/06/05 00:15

1、  第一个布局文件main1.xml

 一个TextView  用来显示保存的信息 

一个EditText 用来编辑准备保存的信息

一个Button用来执行保存信息这个操作

<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"    android:layout_width="match_parent" android:layout_height="match_parent"    android:orientation="vertical">    <TextView        android:layout_width="wrap_content"        android:layout_height="wrap_content"        android:text="New Text"        android:id="@+id/textView"/>        <EditText        android:layout_width="match_parent"        android:layout_height="wrap_content"        android:id="@+id/editText"/>    <Button        android:layout_width="wrap_content"        android:layout_height="wrap_content"        android:text="保存"        android:id="@+id/btnSaveData"/></LinearLayout>

2、第二个布局文件main2.xml

 控件和第一个布局文件一样

<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"    android:layout_width="match_parent" android:layout_height="match_parent"    android:orientation="vertical">    <TextView        android:layout_width="wrap_content"        android:layout_height="wrap_content"        android:text="New Text"        android:id="@+id/textView"/>    <EditText        android:layout_width="match_parent"        android:layout_height="wrap_content"        android:id="@+id/editText"/>    <Button        android:layout_width="wrap_content"        android:layout_height="wrap_content"        android:text="保存"        android:id="@+id/btnSaveData"/></LinearLayout>

3、创建一个java文件App.java

 设置一个字符串,get的set方法

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

4、创建java文件main1.java

<pre style="font-family: 'Courier New'; font-size: 12pt; background-color: rgb(255, 255, 255);"><pre name="code" class="java">public class Main1 extends ActionBarActivity {    private TextView textView;    private EditText editText;    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.main1);        textView = (TextView) findViewById(R.id.textView);        editText = (EditText) findViewById(R.id.editText);        textView.setText("共享的数据是:" + getApp().getTextData());        findViewById(R.id.btnSaveData).setOnClickListener(new View.OnClickListener() {            @Override            public void onClick(View v) {                ((App)getApplication()).setTextData(editText.getText().toString());                textView.setText("共享的数据是:"+editText.getText().toString());            }        });    }    public App getApp(){        return (App) getApplication();    }}

5、创建java文件main2.java

public class Main2 extends Activity{    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("共享的数据是:" + getApp().getTextData());        findViewById(R.id.btnSaveData).setOnClickListener(new View.OnClickListener() {            @Override            public void onClick(View v) {                ((App) getApplication()).setTextData(editText.getText().toString());                textView.setText("共享的数据是:" + editText.getText().toString());            }        });    }    public App getApp(){        return (App) getApplication();    }}

6 、在Manifest.xml注册两个activity

 两个LAUNCHER两个都会启动

<?xml version="1.0" encoding="utf-8"?><manifest xmlns:android="http://schemas.android.com/apk/res/android"    package="com.example.ljaer.learncontext" >    <application        android:name=".App"        android:allowBackup="true"        android:icon="@mipmap/ic_launcher"        android:label="@string/app_name"        android:theme="@style/AppTheme" >        <activity            android:name=".Main1"            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></manifest>





0 0