全局变量类不起作用

时间:2010-08-16 14:47:39

标签: android

我正在尝试设置和全局变量,但是我的应用程序在将以下行添加到我的AndroidManifest.xml后失败

<application android:name=".MyApp"
              android:icon="@drawable/icon" 
              android:label="@string/app_name">

我也在使用以下代码:

类别:     包com.mynamecompany.datahelp;

import android.app.Application;

class MyApp extends Application {

      private String myState;

      public String getState(){
        return myState;
      }
      public void setState(String s){
        myState = s;
      }
    }

用法:

MyApp appState = ((MyApp)getApplicationContext());
String state = appState.getState();
Toast.makeText(getApplicationContext(), "My Value-" + state, Toast.LENGTH_SHORT).show();
appState.setState("Test");
Toast.makeText(getApplicationContext(), "My Value-" + appState.getState(), Toast.LENGTH_SHORT).show();

程序在启动画面上立即启动并出现错误,然后才能在程序中的其他活动中进一步调用使用代码。

有什么想法吗?

2 个答案:

答案 0 :(得分:3)

您正在尝试从Context投射到您的班级。您必须致电getApplication

答案 1 :(得分:1)

清单中的包裹指示是什么:

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.mynamecompany">
    <application android:name=".datahelp.MyApp"
        android:icon="@drawable/icon" android:label="@string/app_name">
...

可能你必须改变它,因为我在上面做了。其余的应该可以正常工作,在我自己的项目中试用。