解決android java.lang.ClassCastException android.app.Application
Firstly, you should create a new class that will behave as our global object, for example :
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 |
package
com.jameselsey.domain;
import
java.util.ArrayList;
import
java.util.List;
import
com.google.android.maps.GeoPoint; import
android.app.Application;
/**
*
This is a global POJO that we attach data to which we
*
want to use across the application
*
@author James Elsey
*
*/
public
class
GlobalState extends
Application
{
private
String testMe;
public
String getTestMe() {
return
testMe;
}
public
void
setTestMe(String testMe) {
this .testMe
= testMe;
}
}
|
The above class declares one String, with accessor methods. Soon we will see how this object will be available throughout the application. You can add anything you want onto this object, in my application I have a List of other domain classes that I wanted to use elsewhere in my application.
Right, now that you have your global class defined, you need to specify this in your AndroidManifest file, otherwise the application won’t know where to find this class, and you will get a ClassNotFoundException
Locate your application tag, and add this into it :
1 |
android:name= "com.jameselsey.domain.GlobalState"
|
It must reference your fully qualified global state class
Now you have it set, your ready to start putting data in, and pulling data out, use the following
1 2 3 4 5 6 7 |
//
Set values
GlobalState
gs = (GlobalState) getApplication();
gs.setTestMe( "Some
String" );</code>
//
Get values
GlobalState
gs = (GlobalState) getApplication();
String
s = gs.getTestMe();
|
And thats it! Off you go!