网上有定义android中全局变量的文章,照抄过来发现竟然出现了异常。
其代码方式如如下:
class MyApp extends Application {
private String myState;
public String getState(){
return myState;
}
public void setState(String s){
myState = s;
}
}
class Blah extends Activity {
@Override
public void onCreate(Bundle b){
...
MyApp appState = ((MyApp)getApplicationContext());
String state = appState.getState();
...
}
}
于是用debug方式运行程序,发现弹出“Source not found.”的错误。
纠结啊,开始以为AndroidManifest.xml配置有问题,改了一遍又一遍,发现仍然问题没有被解决。
其实,我看了那个代码是有点纳闷,为什么没有public 的声明在MyApp前面?况且未找到问题出错的原因,于是加个public在前面试试吧。调试,发现程序已跑起来未出现异常现象了。回头在看看那篇文章,发现底下有好心的网友回复说要加public ,不然会报错。 晕了,都怪没把东西看完。
贴自己的代码吧:
新建一个GlobalVar.java
import android.app.Application;
public class GlobalVar extends Application{
public String psw;
public String phonenum;
}
AndroidManifest.xml的修改
<application
android:name=".GlobalVar"
android:allowBackup="true"
android:icon="@drawable/ic_launcher"
android:label="@string/app_name"
android:theme="@android:style/Theme.NoTitleBar"></application>
其他代码中引用方法
GlobalVar g_appVar = ((GlobalVar)getApplicationContext());
g_appVar.phonenum="13417599140";