Android学习之Application全局数据共享
2016-08-06 01:14
393 查看
Application全局数据共享
Application在Android中有一个名为Application的类,我们可以在Activity中使用getApplication()方法来获得,它是代表我们的应用程序的类,使用它可以获得当前应用的主题、资源文件中的内容等等,这个类有一个灵活的特性就是可以被我们继承,来添加我们自己的全局属性。
例如:下面的例子我们实现了一个字符串的全局共享
1.编写一个Application的子类
public class App extends Application{ private String textData = "default"; public String getTextData() { return textData; } public void setTextData(String textData) { this.textData = textData; } }
2.在manifest.xml文件里面修改
<application android:name=".App" android:allowBackup="true" android:icon="@mipmap/ic_launcher" android:label="Main1" android:supportsRtl="true" android:theme="@style/AppTheme"> <activity android:name=".MainActivity"> <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity>
说明:
我们在上面中添加了一句: android:name=".App",其中App是为Application的子类
3.在第一个Activity
public class MainActivity extends AppCompatActivity { private TextView tv; private EditText ev; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main1); tv = (TextView)findViewById(R.id.textView); ev = (EditText)findViewById(R.id.editText); tv.setText("共享数据是:"+getApp().getTextData()); findViewById(R.id.savebutton).setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { getApp().setTextData(ev.getText().toString()); tv.setText("共享数据是:"+getApp().getTextData()); Intent i = new Intent(MainActivity.this,Main2.class); startActivity(i); } }); } public App getApp(){ return (App)getApplicationContext(); } }
4.在第二个Activity
public class Main2 extends Activity { private TextView tv; private EditText ev; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main2); tv = (TextView)findViewById(R.id.textView); ev = (EditText)findViewById(R.id.editText); tv.setText("共享数据是:"+getApp().getTextData()); findViewById(R.id.savebutton).setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { getApp().setTextData(ev.getText().toString()); tv.setText("共享数据是:"+getApp().getTextData()); Intent i = new Intent(Main2.this,MainActivity.class); startActivity(i); } }); } public App getApp(){ return (App)getApplicationContext(); } }
相关文章推荐
- Android Application 类共享全局数据
- Android--- 利用Application实现全局数据共享
- android 通过Application类 共享全局数据
- Android ---Application 开发中共享全局数据
- Android ---Application 开发中共享全局数据
- android 开发中共享全局数据Application的类
- android 共享全局数据-Application
- Android Application 类共享全局数据
- android 通过Application类 共享全局数据
- Android共享全局数据
- Android共享全局数据
- Android学习19--使用ContentProvider实现数据共享
- Android共享全局数据
- 继承Application实现Android数据共享
- android中共享全局数据的方法
- Android系统数据共享---Content Provider学习小结
- Android开发学习之使用ContentProvider实现数据共享
- android 开发中共享全局数据
- android 少用static全局变量共享数据讨论
- android中application共享数据以及内存泄露问题