2016-12-31 11 views
0

別の値から文字列のIDを取得するしかし、私は3つの値のフォルダを持っているのstrings.xmlからこの よう私はタイトルが、 混乱して知っている

を既存の文字列のIDキーを取得しようとしたとき、私は永続的な問題を抱えています: 値、値-fr、値-Ar;

及びIは、1つの文字列IDを持っている:スクリーンで印刷するとき、このIDショー

R.id.center 

を:値の値における

"Center" 
値-FRにおける

"Centre" 

を-ar

"وسط" 

私の質問は: は `「センター」または「センター」またはを渡すことによって、int型のIDを取得する方法はあります「وسط」パラメータとして

いろいろ書い「وسط」のgetId、または(「センターなどがあります。 ").getId これらのメソッドが存在しないことは分かっています:) '

+1

なぜこれが必要ですか? –

+0

私は解決策が必要です –

+0

http://stackoverflow.com/questions/30774447/get-all-string-resources-from-xml-resource-fileとして文字列を比較するだけです –

答えて

1

編集:テスト済みであり、動作しています。ロケールサポートが含まれています。

public void listValues() { 
    Field[] fields = R.string.class.getFields(); 

    String[] locales = Resources.getSystem().getAssets().getLocales(); 


    for (int x = 0; x < locales.length; x++) { 
     System.out.println("checking for all ressources for the locale=" + locales[x]); 
     for (int i = 0; i < fields.length; i++) { 
      try { 
       System.out.println("name=" + fields[i].getName() + " value=" + getLocalizedResources(this, new Locale(locales[x])).getString(fields[i].getInt(fields[i].getName()))); 
      } catch (IllegalAccessException ex) { 
       System.out.println(".. catch it if you want it"); 
      } catch (RuntimeException rex) { 
      } 
     } 
    } 
} 

@NonNull 
Resources getLocalizedResources(Context context, Locale desiredLocale) { 
    Configuration conf = context.getResources().getConfiguration(); 
    conf = new Configuration(conf); 
    conf.setLocale(desiredLocale); 
    Context localizedContext = context.createConfigurationContext(conf); 
    return localizedContext.getResources(); 
} 
+0

シンボル '値'を解決できません –

+0

が更新されました。それは文字列クラス –

+0

IMHOですが、これは主要な問題を解決していません。私の答えを読んでください。 – Vyacheslav

関連する問題