Java 应用程序中声明的方法不可访问
Manifest.xml:Java 应用程序中声明的方法不可访问,java,android,Java,Android,Manifest.xml: <application android:name="com.google.firebase.quickstart.database.App" android:label="@string/app_name" android:supportsRtl="true"> </application> Disc:为了简洁起见,省略了上面的其他方法您必须将其转换为您自己的应用程序类,因为Android
<application
android:name="com.google.firebase.quickstart.database.App"
android:label="@string/app_name"
android:supportsRtl="true">
</application>
Disc:为了简洁起见,省略了上面的其他方法您必须将其转换为您自己的应用程序类,因为Android SDK方法不知道您将其子类化
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;
}
}
public class MainActivity {
@Override
public void onContactsFetched(List<Contact> contacts) {
// Cast to your App
((App)getApplication()).setMainContacts(contacts);
}
}
公共类活动{
@凌驾
已蚀刻公共无效联系人(列出联系人){
//向你的应用程序播放
((应用程序)getApplication()).setMainContacts(联系人);
}
}
您应该在活动中创建应用程序对象。之后,您可以访问应用程序类方法
@Override
public void onContactsFetched(List<Contact> contacts) {
// Cast to your App
MyAppication myAppication=(MyAppication) getApplication();
myAppication.setMainContacts(contacts);
}
@覆盖
已蚀刻公共无效联系人(列出联系人){
//向你的应用程序播放
我的应用程序我的应用程序=(我的应用程序)getApplication();
MyApp.setMainContacts(联系人);
}
非常确定您应该强制转换getApplication()的返回对象,以便在Android.manifest文件中注册您的应用程序,并尝试将您的方法设置为静态。@StarterPack解决了这个问题works@StarterPack你能把它移到一个答案上来吗?这样我就可以接受了
App.getContext().yourMethod
public class MainActivity {
@Override
public void onContactsFetched(List<Contact> contacts) {
// Cast to your App
((App)getApplication()).setMainContacts(contacts);
}
}
@Override
public void onContactsFetched(List<Contact> contacts) {
// Cast to your App
MyAppication myAppication=(MyAppication) getApplication();
myAppication.setMainContacts(contacts);
}