2016-09-19 4 views
-1

問題は、私が自分のアプリケーションに必要なデータを持つさまざまなXMLファイルを持っていて、XMLファイルの名前で読み込むためにアクセスしたいのです。 "fileName.xml"私はプルパーサーを実行することができます。プログラムは文字列で指定された名前でロードするファイルを知っているだけなので、r.id.fileName.xmlを使って呼び出すことはできません。 (RESIDは常に0である)Android Studioはxmlデータファイルを名前で検索します

int resID = getResources().getIdentifier("r.id.fileName", "id", getPackageName()); 

し、この残油でそれを呼び出す...動作するようには思えない:(

すべてのアイデアは:

私のようなものを試してみましたか?

はありがとう

答えて

0

をパフォーマンスの観点から最善の解決策は、いくつかの文字列とリソースIDの値とJavaコードでマッピングを持つことです!

private static HashMap<String, Integer> RESOURCES=new HashMap<>(); 

static { 
    RESOURCES.put("thingy", R.xml.thingy); 
    RESOURCES.put("thingy2", R.xml.thingy2); 
    // and so on 
} 

次に、あなただけのgetIdentifier()の内側に行くリフレクションを使用することなく、ID値を取得するためにRESOURCES.get()を呼び出すことができます。

あなたが本当にgetIdentifier()を使用する場合は、構文は次のようになります。

int resID = getResources().getIdentifier("fileName", "xml", getPackageName()); 

ので:最初のパラメータが2番目のパラメータはあるリソース

  • のベース名です

    • は、リソースの種類、ファイルの種類がidでない場合
  • +0

    ありがとうございます!両方のことがうまくいく – Oleguer

    関連する問題