的Manifest.xml:
Var.Watch UINT32_MAX
Var.PRINT UINT32_MAX
PRINT %Decimal Var.VALUE(UINT32_MAX)
我的App.java:
<application
android:name="com.google.firebase.quickstart.database.App"
android:label="@string/app_name"
android:supportsRtl="true">
</application>
我的Activity.java:
public class App extends Application {
protected List<Contact> main_contacts = null;
public void setMainContacts(List<Contact> contacts) {
main_contacts = contacts;
}
public List<Contact> getMainContacts() {
return main_contacts ;
}
}
Android Studio甚至无法识别public class MainActivity{
@Override
public void onContactsFetched(List<Contact> contacts) {
getApplication().setMainContacts(contacts);//<= Not recognised
}
}
中声明的方法
光盘:为简洁起见,省略了上述其他方法
答案 0 :(得分:0)
public class App extends Application {
protected List<Contact> main_contacts = null;
public void setMainContacts(List<Contact> contacts) {
main_contacts = contacts;
}
@Override
public void onCreate() {
super.onCreate();
mInstance = this;
}
public List<Contact> getMainContacts() {
return main_contacts ;
}
public static synchronized App getContext() {
return mInstance;
}
}
您可以像
一样访问它App.getContext().yourMethod
答案 1 :(得分:0)
您必须转发到自己的App类,因为Android SDK方法getApplication()
不知道您已将其子类化。
public class MainActivity {
@Override
public void onContactsFetched(List<Contact> contacts) {
// Cast to your App
((App)getApplication()).setMainContacts(contacts);
}
}
答案 2 :(得分:0)
您应该在Activity中创建应用程序对象。之后,您可以访问Application类方法。
@Override
public void onContactsFetched(List<Contact> contacts) {
// Cast to your App
MyAppication myAppication=(MyAppication) getApplication();
myAppication.setMainContacts(contacts);
}