我正在尝试使用此处说明的方案在应用程序的各个活动之间共享两个ArrayList:如何在Android中声明全局变量?。
这是我的应用程序子类:
public class GlobalVars extends Application{
ArrayList<Player> players = new ArrayList<Player>();
ArrayList<String> playerNames = new ArrayList<String>();
public ArrayList<Player> getPlayers(){
return players;
}
public ArrayList<String> getPlayerNames(){
return playerNames;
}
public void setPlayers(ArrayList<Player> p){
players = p;
}
public void setPlayerNames(ArrayList<String> pn){
playerNames = pn;
}
}
并使用了代码:
GlobalVars gv = (GlobalVars)getApplicationContext();
players = gv.getPlayers();
playerNames = gv.getPlayerNames();
访问这些变量。我在其中定义gv的第一行抛出classcastexception。有人知道为什么吗?
这是我添加到清单中的代码:
<application android:name="com.myname.GlobalVars"
android:icon="@drawable/icon"
android:label="@string/app_name"></application>
编辑:为澄清起见,这是我的全部清单:
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.myname.bpstattracker" android:versionCode="1"
android:versionName="1.0">
<application android:icon="@drawable/icon" android:label="@string/app_name">
<activity android:name=".BPStatTracker" 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=".BPSTAdd"></activity>
<activity android:name=".OneOrThree"></activity>
<activity android:name=".SixOrTen"></activity>
</application>
<application android:name="com.myname.GlobalVars"
android:icon="@drawable/icon" android:label="@string/app_name">
</application>
</manifest>
拉丁的传说
相关分类