0

一度読み取ってグローバルに保存したい静的xmlデータがいくつかあります。最初は、アクティビティからマップにファイルを読み取るだけですが、複数のアクティビティからのデータにアクセスする必要があるため、各アクティビティからファイルから読み取ることは避けたいと思います。

コンテキストを必要とするXmlPullParserを使用しています。私の問題は、それを次のような静的変数に格納したいということです...

public static Map<String,String> myXmlData=getXmlData(???);

しかし、静的な方法でアプリケーションコンテキストを取得する方法がわかりません。

public static Map<String, String> getXMLData(Context ctx){
    Map<String, String> data = new HashMap<String, String>();
    XmlPullParser parser = ctx.getResources().getXml(R.xml.mydata );
    ...

}

上記の静的メソッドからctxパラメーターを削除し、GetApplicationContext()を呼び出しようとしましたが、コンパイラーは、静的メソッドからその呼び出しを行おうとしていたことを気に入らなかった。

誰かアイデアはありますか?

4

1 に答える 1

1

アプリでApplication クラスを拡張する必要があります。これは、初期化が必要なアプリ全体のリソースのエントリ ポイントです。

Application.onCreate は、ユーザーがアプリを起動したときにアプリケーションで最初に実行されるものの 1 つです。

Application はコンテキストを拡張するため、アプリの初期化に必要なもの (リソース、参照、システム サービスなど) を取得できます。

ここにチュートリアルがあります http://www.helloandroid.com/tutorials/maintaining-global-application-state

于 2012-11-27T17:17:53.383 に答える