Android教程網
  1. 首頁
  2. Android 技術
  3. Android 手機
  4. Android 系統教程
  5. Android 游戲
 Android教程網 >> Android技術 >> Android開發實例 >> Android應用開發入門(六)通過Application傳遞數據

Android應用開發入門(六)通過Application傳遞數據

編輯:Android開發實例

  在整個Android程序中,有時需要保存某些全局的數據(如:用戶信息),方便在程序的任何地方調用。在Activity之間數據傳遞中有一種比較使用的方式,就是全局對象,使用過J2EE的都應該知道JavaWeb的四個作用域,其中Application域在應用程序的任何地方都可以使用和訪問,除非是Web服務器停止,Android中的全局對象非常類似於JavaWeb中的Application域,除非是Android應用程序清除內存,否則全局對象將一直可以訪問。

  在啟動Application時,系統會創建一個PID,即進程ID,所有的Activity就會在此主進程上運行。所以,在同一Application中所有的Activity都可以通過Activity.getApplication()方法獲取到同一個Application對象,繼承Application類,即可訪問自定義數據。

  簡單來說,使用Application傳遞數據步驟如下:

  1. 創建新class,取名MyApp,繼承android.app.Application父類,並在MyApp中定義需要保存的屬性,如:用戶名,用戶類型。
  2. 在Activity中,通過Activity.getApplication()方法獲取到MyApp對象(需要強制轉換),對其數據進行操作。
  3. 修改AndroidManifest.xml文件中的application節點的android:name屬性(android:name=".MyApp")。

代碼示例

步驟一:

  1. public class MyApp extends Application {  
  2.  
  3.     private String name;  
  4.  
  5.     public String getName() {  
  6.         return name;  
  7.     }  
  8.  
  9.     public void setName(String name) {  
  10.         this.name = name;  
  11.     }  
  12.  
  13.     @Override 
  14.     public void onCreate() {  
  15.         // TODO Auto-generated method stub  
  16.         super.onCreate();  
  17.           
  18.         setName("Dick");  
  19.           
  20.     }  

步驟二:

  1. public class MainActivity extends Activity {  
  2.  
  3.     private Button btn;  
  4.     private MyApp myApp;  
  5.     @Override 
  6.     protected void onCreate(Bundle savedInstanceState) {  
  7.         super.onCreate(savedInstanceState);  
  8.         setContentView(R.layout.activity_main);  
  9.           
  10.         btn=(Button)this.findViewById(R.id.btn);  
  11.           
  12.         btn.setOnClickListener(new View.OnClickListener() {  
  13.               
  14.             @Override 
  15.             public void onClick(View v) {  
  16.                 // TODO Auto-generated method stub  
  17.                 myApp=(MyApp)getApplication();  
  18.                 myApp.setName("jack");  
  19.                 Intent intent=new Intent(MainActivity.this, otherActivity.class);  
  20.                 startActivity(intent);  
  21.                   
  22.             }  
  23.         });          
  24.     }  

步驟三:

  1. <manifest xmlns:android="http://schemas.android.com/apk/res/android" 
  2.     package="cn.bgxt.staticchuandi" 
  3.     android:versionCode="1" 
  4.     android:versionName="1.0" > 
  5.  
  6.     <uses-sdk 
  7.         android:minSdkVersion="8" 
  8.         android:targetSdkVersion="17" /> 
  9.  
  10.     <application 
  11.         android:name=".MyApp" 
  12.         android:allowBackup="true" 
  13.         android:icon="@drawable/ic_launcher" 
  14.         android:label="@string/app_name" 
  15.         android:theme="@style/AppTheme" > 
  16.         <activity 
  17.             android:name="cn.bgxt.staticchuandi.MainActivity" 
  18.             android:label="@string/app_name" > 
  19.             <intent-filter> 
  20.                 <action android:name="android.intent.action.MAIN" /> 
  21.  
  22.                 <category android:name="android.intent.category.LAUNCHER" /> 
  23.             </intent-filter> 
  24.         </activity> 
  25.         <activity android:name=".otherActivity"/> 
  26.     </application> 
  27.  
  28. </manifest> 

 

  1. 上一頁:
  2. 下一頁:
熱門文章
閱讀排行版
Copyright © Android教程網 All Rights Reserved