2014-08-28 4 views
2

У меня есть ArrayAdapter<String>, что я использую, чтобы показать один выбор Dialog так:Как я могу получить строки ArrayAdapter из строковых ресурсов?

dialogBuilder.setAdapter(arrayAdapter ... 

Это ArrayAdapter:

arrayAdapter = new ArrayAdapter<String>(StartActivity.this, android.R.layout.select_dialog_singlechoice); 
arrayAdapter.addAll("A Tropical Rainforest", "Backwater Chorus", "Big River", "Bird Song 1", "Bird Song 2", "Cave Ambience", "Cold Stormy Wind", 
      "Crickets", "Deep Woods", "Fireplace", "Jungle River", "Long Soothing Rain", "Ocean Waves 1", "Ocean Waves 2", 
      "Pacific And Songbirds", "Pig Frogs", "Small Green Froggies", "Small Rapid", "Sparkling Water", "Stormy Wind", 
      "Thunder and Rain", "Thunderstorm Inner Perspective", "Twilight", "Waterfall", "Wind"); 

Теперь проблема в том, что я хочу сделать это несколько которое означает, что мне нужно получить все эти строки из String Resources. Но я не могу этого сделать, поскольку String Resource возвращает int, пока я могу только вставить String.

Любая идея, как я могу это сделать?

+0

Создайте массив идентификаторов ресурсов, который соответствует строкам, которые вам нужны, и динамически добавьте строки из массива с помощью getResources(). GetString (resourceArray [pos]) в некотором цикле – zgc7009

+0

Спасибо, я попробую это. – Guy

+0

Ха-ха, вот почему вы должны прочитать весь вопрос, я думал, вы говорите, что вам нужен доступ к int id. Sigh haha ​​ – zgc7009

ответ

0

Создать ресурс массива

<resources> 
    <string-array name="values"> 
     <item>A Tropical Rainforest</item> 
     <item>Backwater Chorus</item> 
     <item>Big River</item> 
     <item>Bird Song 1</item> 
     <item>And so on</item> 
    </string-array> 
</resources> 

И теперь, вы можете получить значения из кода, как это:

String values[] = getResources().getStringArray(R.array.values); 
arrayAdapter.addAll(values); 
+0

Спасибо, отлично работает! :) – Guy

+0

Добро пожаловать! ;) –

0

Во-первых, определить массив строк в ресурсах:

<string-array name="nature_things_array"> 
    <item>A Tropical Rainforest</item> 
    <item>Backwater Chorus</item> 
    <item>Big River</item> 
    <item>Bird Song 1</item> 
</string-array> 

Затем устанавливают отдельные элементы выбора на AlertDialog.Builder:

AlertDialog.Builder builder = new AlertDialog.Builder(getActivity()); 
builder.setTitle(R.string.pick_color) 
     .setMultiChoiceItems(R.array.nature_things_array, null, 
        new DialogInterface.OnSingleChoiceClickListener() { 
      @Override 
      public void onClick(DialogInterface dialog, int which, 
        boolean isChecked) { 
       // ... 
      } 
     }) 
}); 
return builder.create(); 

Вы можете найти хороший андроид для руководства по диалогу here.

Смежные вопросы