2017-09-14 12 views
-1

たManifest.xmlアプリケーションで宣言された:メソッドにアクセスできません

<application 
     android:name="com.google.firebase.quickstart.database.App" 
     android:label="@string/app_name" 
     android:supportsRtl="true"> 
</application> 

マイApp.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 ; 
    } 
} 

マイActivity.java:

public class MainActivity{ 
    @Override 
    public void onContactsFetched(List<Contact> contacts) { 
     getApplication().setMainContacts(contacts);//<= Not recognised 
    } 
} 

Androidのメーカーでも認識されていませんApp enter image description here

012で宣言された教団

ディスク:簡潔

+2

あなたがgetApplication(のリターンオブジェクトをキャストする必要がありますかなり確信して) – StarterPack

+0

Android.manifestファイルにアプリケーションを登録して、あなたの方法は、静的にしよう。 – Ankita

+0

@StarterPackそれは動作する – ishandutta2007

答えて

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; 
} 
} 

のための上記の他の方法を省略し、あなたが知らないgetApplication()のAndroid SDKの方法ので、あなたがあなた自身のAppクラスにキャストする必要が

App.getContext().yourMethod 
0

のようにアクセスすることができますあなたはそれをサブクラス化しました。

public class MainActivity { 
    @Override 
    public void onContactsFetched(List<Contact> contacts) { 
     // Cast to your App 
     ((App)getApplication()).setMainContacts(contacts); 
    } 
} 
0

アクティビティでアプリケーションオブジェクトを作成する必要があります。その後、Applicationクラスメソッドにアクセスできます。アプリケーションへ

@Override 
    public void onContactsFetched(List<Contact> contacts) { 
     // Cast to your App 
     MyAppication myAppication=(MyAppication) getApplication(); 
     myAppication.setMainContacts(contacts); 
    } 
関連する問題