zoukankan      html  css  js  c++  java
  • 通过Application传递数据代码

    使用Application传递数据步骤如下:创建新class,取名MyApp,继承android.app.Application父类,并在MyApp中定义需要保存的属性
     
     
    在整个Android程序中,有时需要保存某些全局的数据(如:用户信息),方便在程序的任何地方调用。在Activity之间数据传递中有一种比较使用的方式,就是全局对象,使用过J2EE的都应该知道JavaWeb的四个作用域,其中Application域在应用程序的任何地方都可以使用和访问,除非是Web服务器停止,Android中的全局对象非常类似于JavaWeb中的Application域,除非是Android应用程序清除内存,否则全局对象将一直可以访问。

    在启动Application时,系统会创建一个PID,即进程ID,所有的Activity就会在此主进程上运行。所以,在同一Application中所有的Activity都可以通过Activity.getApplication()方法获取到同一个Application对象,继承Application类,即可访问自定义数据。

    简单来说,使用Application传递数据步骤如下:
    创建新class,取名MyApp,继承android.app.Application父类,并在MyApp中定义需要保存的属性,如:用户名,用户类型。
    在Activity中,通过Activity.getApplication()方法获取到MyApp对象(需要强制转换),对其数据进行操作。
    修改AndroidManifest.xml文件中的application节点的android:name属性(android:name=".MyApp")。

    代码示例
    步骤一:
    复制代码 代码如下:

    public class MyApp extends Application {
    private String name;
    public String getName() {
    return name;
    }
    public void setName(String name) {
    this.name = name;
    }
    @Override
    public void onCreate() {
    // TODO Auto-generated method stub
    super.onCreate();
    setName("Dick");
    }
    }

    步骤二:
    复制代码 代码如下:

    public class MainActivity extends Activity {
    private Button btn;
    private MyApp myApp;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    btn=(Button)this.findViewById(R.id.btn);
    btn.setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View v) {
    // TODO Auto-generated method stub
    myApp=(MyApp)getApplication();
    myApp.setName("jack");
    Intent intent=new Intent(MainActivity.this, otherActivity.class);
    startActivity(intent);
    }
    });
    }
    }

    步骤三:
    复制代码 代码如下:

    <manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="cn.bgxt.staticchuandi"
    android:versionCode="1"
    android:versionName="1.0" >
    <uses-sdk
    android:minSdkVersion="8"
    android:targetSdkVersion="17" />
    <application
    android:name=".MyApp"
    android:allowBackup="true"
    android:icon="@drawable/ic_launcher"
    android:label="@string/app_name"
    android:theme="@style/AppTheme" >
    <activity
    android:name="cn.bgxt.staticchuandi.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=".otherActivity"/>
    </application>
    </manifest> 
  • 相关阅读:
    Google的Protobuf安装及使用笔记一
    std::list与std::map的排序比较
    svn库镜像
    daemontools中supervise系统进程监控
    memcached的客户端
    Memcached安装及使用
    eclipse下maven配置
    栈溢出
    堆排序
    redis使用笔记
  • 原文地址:https://www.cnblogs.com/awkflf11/p/4365755.html
Copyright © 2011-2022 走看看