android全局變數使用
『壹』 android Application全局變數
不是啊,你聲明在類裡面而不是onCreate方法裡面就可以在這個Activity中使用。
public class GuessNumberActivity extends Activity {
Button btn1 = null;
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
btn1 = (Button) findViewById(R.id.btn1);
}
//在其他函數中使用
bt1.setOnClickListener(new Button.onClickListener(){.........});
『貳』 在Android中如何使用全局變數--Application context (轉)
可以將變數存放在Application中,Context,中文直譯為「上下文」,SDK中對其說明如下:
Interface to global information about an application environment. This is an abstract class whose implementation
is provided by the Android system. It allows access to application-specific resources and classes, as well as up-calls
for application-level operations such as launching activities, broadcasting and receiving intents, etc。
從上可知一下三點即:
1、它描述的是一個應用程序環境的信息,即上下文。
2、該類是一個抽象(abstract class)類,Android提供了該抽象類的具體實現類(後面我們會講到是ContextIml類)。
3、通過它我們可以獲取應用程序的資源和類,也包括一些應用級別操作,例如:啟動一個Activity,發送廣播,接受Intent信息等。
以下為使用Application存儲全局變數的示例代碼:
1.繼承Application,並在Application里聲明全局變數。
public class MyApplication extends Application {
private User user;
public User getUser() {
return user;
}
public void setUser(User user) {
this.user = user;
}
}
2.在AndroidManifest.xml的application節點中聲明這個Application。
<application android:name="com.xxx.xxx.MyApplication">
3.在Activity中獲取Application對象,並存取全局變數。
User user = new User();
user.setUserName("example");
MyrApplication app= (MyApplication ) getApplicationContext();
app.setUser(user); //將變數存到application
User tmp = app.getUser();//從application中讀取全局變數。
『叄』 android的全局配置文件是什麼,它的作用
Application設置全局變數以及傳值
/**
* 重寫Application,主要重寫裡面的onCreate方法,就是創建的時候,
* 我們讓它初始化一些值,前段時間在javaeye裡面看到過一個例子,與此相似,
* 我做了些改進。聽說外國開發者習慣用此初始化一些全局變數,好像在Activity
* 一些類裡面初始化全局變數的化,會遇到一些空指針的異常,當然,我沒有遇到過。
* 如果用此方法初始化的話,那麼就可以避免那些有可能出現的錯誤。
*
* 啟動Application,他就會創建一個PID,就是進程ID,所有的Activity就會在此進程上運行。
* 那麼我們在Application創建的時候初始化全局變數,那麼是不是所有的Activity都可以拿到這些
* 全局變數,再進一步說,我們在某一個Activity中改變了這些全局變數的值,那麼在別的Activity中
* 是不是值就改變了呢,這個算不算傳值呢?
* OK,那麼下面的例子我們測試下。。。
* @author yong.wang
*
*/
public class MyApplication extends Application {
private String name;
@Override
public void onCreate() {
super.onCreate();
setName(NAME); //初始化全局變數
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
private static final String NAME = "MyApplication";
}
//Ok,應用程序創建好了,不過我們應該在配置文件ApplicationManifest.xml中將要運行的應用程序MyApplication加進去,修改下:
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.hisoft.app"
android:versionCode="1"
android:versionName="1.0">
<application android:icon="@drawable/icon" android:label="@string/app_name"
android:name=".MyApplication"> 就是這兒,將我們以前一直用的默認Application給他設置成我們自己做的MyApplication
<activity android:name=".MyFirstActivity"
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=".MySecondActivity"></activity>
</application>
<uses-sdk android:minSdkVersion="8" />
</manifest>
當xml配置文件運行完android:name=".MyApplication">,在此那麼就分配好了進程ID,再下面,我們就要運行我們的Activity了
public class MyFirstActivity extends Activity {
private MyApplication app;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
app = (MyApplication) getApplication(); //獲得我們的應用程序MyApplication
Log.e("MyFirstActivityOriginal", app.getName()); //將我們放到進程中的全局變數拿出來,看是不是我們曾經設置的值
app.setName("is cool"); //OK,現在我們開始修改了
Log.e("MyFirstActivityChanged", app.getName()); //再看下,這個值改變了沒有
Intent intent = new Intent(); //更重要的是我們可以看在別的Activity中是拿到初始化的值,還是修改後的
intent.setClass(this, MySecondActivity.class);
startActivity(intent);
}
}
上面運行完了,就要跳到這個Activity了
public class MySecondActivity extends Activity {
private MyApplication app;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
app = (MyApplication) getApplication(); //獲取應用程序
Log.e("MySecondActivity", app.getName()); //獲取全局值
}
}
『肆』 android 如何定義全局變數
找到一個和我有類似需求的問題,其下給出了不錯的解決方案,也正是我之前想到的,這種方法貌似很方便。 The more general problem you are encountering is how to save stateacross several Activities and all parts of your application. A staticvariable (for instance, a singleton) is a common Java way of achievingthis. I have found however, that a more elegant way in Android is toassociate your state with the Application context. --如想在整個應用中使用,在java中一般是使用靜態變數,而在android中有個更優雅的方式是使用Application context。 As you know, each Activity is also a Context, which is informationabout its execution environment in the broadest sense. Your applicationalso has a context, and Android guarantees that it will exist as asingle instance across your application. --每個Activity 都是Context,其包含了其運行時的一些狀態,android保證了其是single instance的。 The way to do this is to create your own subclass of android.app.Application,and then specify that class in the application tag in your manifest.Now Android will automatically create an instance of that class andmake it available for your entire application. You can access it fromany context using the Context.getApplicationContext() method (Activityalso provides a method getApplication() which has the exact sameeffect): --方法是創建一個屬於你自己的android.app.Application的子類,然後在manifest中申明一下這個類,這是 android就為此建立一個全局可用的實例,你可以在其他任何地方使用Context.getApplicationContext()方法獲取這個實例,進而獲取其中的狀態(變數)。
『伍』 瀹夊崜鎬庝箞鍏ㄥ矓鍙橀噺鏀規満錛屾湁綰㈠寘閰璋
1銆嬪畨瑁厁posed妗嗘灦錛屽畨瑁咃紝閲嶅惎
2銆嬩笅杞鍏ㄥ矓鍙橀噺妯″潡騫跺畨瑁
3銆嬮噸鍚涔嬪悗榪涘叆鍏ㄥ矓鍙橀噺 淇鏀規満鍨嬨
『陸』 Android中gradle文件中${ } 全局變數在哪裡定義的
為方便在不同mole中設置版本號等配置信息,可以通過配置全局變數來統一所有mole的公共配置信息。
設置方法一般分為兩種:
一、獨立文件配置
1.1.在項目的根目錄下新建config.gradle文件
1.2.將gradle中的公共信息寫入config.gradle文件中:
1.3.在主項目的build.gradle中申明一下:
1.4.在項目中引用我們的路徑配置。如下圖:
二、在gradle.properties或者local.properties文件中配置
如下為簽名配置:
看了覺得也還挺方便的,但是!需要注意的是:因為用到的都是String變數,當需要到Integer變數時,就麻煩點了:
需要用Integer.parseInt();方法對String類型進行轉換!
『柒』 android 鍏ㄥ矓鍙橀噺鎬庝箞浣跨敤
鍏ㄥ矓鍙橀噺鎬庝箞浣跨敤錛熻存硶澶妯$硦浜嗭紝濡傛灉浣犳槸瑕佸0鏄庝竴涓鍏ㄥ矓鍙橀噺錛屽亣璁炬湁涓涓綾伙紝浣犲彧瑕佸湪綾繪垚鍛樺彉閲忓0鏄庡嵆鍙錛屼緥濡傦細鎴戝0鏄庝竴涓猧nt 綾誨瀷鐨勫彉閲忎負10錛歱rivate int number=10; 浣犲彲浠ュ湪璇ョ被涓鏂規硶鍐呰皟鐢ㄥ畠錛堟瘮濡傜敤鏉ュ仛鍔犲噺涔橀櫎錛夛紝涔熷彲浠ラ噸鏂拌祴鍊肩粰瀹冿紙number=XX, XX蹇呴』鏄痠nt綾誨瀷錛屽惁鍒欏彲鑳介渶瑕佸己杞錛夈