2013-05-06 3 views
0

Итак, я пишу программу с тремя прядильщиками, и я хочу добавить массив к каждому из них. Однако код, который у меня есть на данный момент, работает, но очень длинный, поэтому мне было интересно, есть ли более простой/более короткий/более эффективный способ его кодирования.Написание ArrayAdapter dirrently - андроид

 ArrayAdapter<CharSequence> adapter = ArrayAdapter.createFromResource(
       this, R.array.distanceType, 
       android.R.layout.simple_spinner_item); 
     adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); 
     distanceSpinner.setAdapter(adapter); 

     ArrayAdapter<CharSequence> adapter2 = ArrayAdapter.createFromResource(
       this, R.array.areaType, android.R.layout.simple_spinner_item); 
     adapter2.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); 
     areaSpinner.setAdapter(adapter2); 

     ArrayAdapter<CharSequence> adapter3 = ArrayAdapter.createFromResource(
       this, R.array.genderType, android.R.layout.simple_spinner_item); 
     adapter3.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); 
     genderSpinner.setAdapter(adapter3); 

Как вы можете видеть, в основном, тот же код повторяется 3 раза.

ответ

3

Создать фабричный метод для облегчения написания пользовательских адаптеров:

public ArrayAdapter createSimpleAdapter(int itemsArrayId) { 
     ArrayAdapter<CharSequence> adapter = ArrayAdapter.createFromResource(
      this, itemsArrayId, 
      android.R.layout.simple_spinner_item); 
     adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); 
     return adapter;   
} 

Тогда творения становятся столь же легко, как:

distanceSpinner.setAdapter(createSimpleAdapter(R.array.distanceType)); 
areaSpinner.setAdapter(createSimpleAdapter(R.array.areaType)); 
genderSpinner.setAdapter(createSimpleAdapter(R.array.genderType)); 
Смежные вопросы