Как использовать спиннер и заполнить его из массива в Android - PullRequest
3 голосов
/ 19 марта 2012

Я новичок в разработке Android и хочу реализовать Spinner.Моя проблема в том, что у меня есть массив, который имеет 9 значений для ключевой категории.Мой массив выглядит так:

MyArray
[{Category=Things To Do}, 
 {Category=Transportation}, 
 {Category=Food  and  Drink}, 
 {Category=Accommodation}, 
 {Category=Shopping},
 {Category=Money and Costs}, 
 {Category=Business}, 
 {Category=Turkey Tour},
 {Category=Events}]

Я хочу получить значение ключа категории.Мне нужен MyArray для спиннера, как показано ниже:

MyArray
    {
    Things To Do
    Transportation
    Food and Drink
    Accommodation
    Shopping
    ......    
    } 

Это похоже на код iPhone.

// iPhone code 
for(int i=0; i<[arrayCategory count]; i++)
    {
    NSString *strSubTitle=[[arrayCategory objectAtIndex:i]objectForKey:@"category"];
    }

Есть идеи?

Пожалуйста, помогите мне.

Спасибо

Ответы [ 4 ]

11 голосов
/ 19 марта 2012

сначала создайте строку XML для вашего массива String

<?xml version="1.0" encoding="utf-8"?>
 <resources>
    <string name="planet_prompt">Choose a planet</string>
   <string-array name="planets_array">
    <item>Mercury</item>
    <item>Venus</item>
    <item>Earth</item>
    <item>Mars</item>
    <item>Jupiter</item>
    <item>Saturn</item>
    <item>Uranus</item>
    <item>Neptune</item>
   </string-array>
</resources>

затем используйте приведенный выше xml для строкового массива в вашем коде, как показано ниже

   @Override
     public void onCreate(Bundle savedInstanceState) {
       super.onCreate(savedInstanceState);
        setContentView(R.layout.main);

    Spinner spinner = (Spinner) findViewById(R.id.spinner);
    ArrayAdapter<CharSequence> adapter = ArrayAdapter.createFromResource(
        this, R.array.planets_array, android.R.layout.simple_spinner_item);
     adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
     spinner.setAdapter(adapter);
  }
4 голосов
/ 19 марта 2012

попробуйте так, все будет работать нормально.

public class ArrayAdapterDemo2 extends Activity implements
        AdapterView.OnItemSelectedListener {
    TextView selection;
    String[] category= { "football","cricket" ,"baseball"};

    @Override
    public void onCreate(Bundle icicle) {
        super.onCreate(icicle);
        setContentView(R.layout.main);
        selection = (TextView) findViewById(R.id.selection);

        Spinner spin = (Spinner) findViewById(R.id.spinner);
        spin.setOnItemSelectedListener(this);

        ArrayAdapter aa = new ArrayAdapter(this,android.R.layout.simple_spinner_item, category);

        aa.setDropDownViewResource(
           android.R.layout.simple_spinner_dropdown_item);
        spin.setAdapter(aa);
    }

    public void onItemSelected(AdapterView<?> parent, View v, int position,
            long id) {
        selection.setText(items[position]);
    }

    public void onNothingSelected(AdapterView<?> parent) {
        selection.setText("");
    }
}
0 голосов
/ 19 марта 2012
import android.widget.SimpleCursorAdapter;
import android.widget.Spinner;

public class AndroidSQLite extends Activity implements OnItemSelectedListener {
 Spinner spinnergame;
 String[] games = { "football","cricket" ,"baseball"};

 @Override
public void onCreate(Bundle icicle) {
    super.onCreate(icicle);
 setContentView(R.layout.creategame);

spinnergame = (Spinner) findViewById(R.id.game);
spinnergame.setOnItemSelectedListener(this);
ArrayAdapter<String> aa = new ArrayAdapter<String>(this,
            android.R.layout.simple_spinner_item, games);

    aa.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
    spinnercity.setAdapter(aa);
public String getSpinnerSelection() {
    return this.selectedspinnervalue;
}

public void setSpinnerSelection(String selection) {
    this.selectedspinnervalue = selection;
}
public void onItemSelected(AdapterView<?> parent, View view, int position,
        long id) {



}


public void onNothingSelected(AdapterView<?> arg0) {
    // TODO Auto-generated method stub
    selection.setText("");

  }
}
0 голосов
/ 19 марта 2012

Если я правильно понимаю ваш вопрос, это будет 1. Создать Spinner Spinner spinner;

2.Создать данные String[] category={"Cricket","football".....};

3.spinner.setAdapter (новый адаптер массива (this, android.R.layout.simple_spinner_item, категория));

4. при выборе определенного значения на счетчике для получения значения

spinner.setOnItemSelected(new onItemselected(public void onItemSelected(AdapterView<?> parent,
            View view, int pos, long id) {
// to get selected Value
Toast.makeText(getApplicationContext(),"selected:"+category[pos],5000).show();
});
...