Как соединить 2 разных спиннера вместе

Я пытаюсь соединить 2 блесны вместе. Это означает, что предметы внутри 2-го счетчика будут зависеть от того, какой предмет выбран для 1-го счетчика.

Это код внутри основного java-файла.

public void onCreate (Bundle saveInstanceState) {

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);

}

Это код внутри MyOnItemSelectedListener.java

открытый класс MyOnItemSelectedListener реализует OnItemSelectedListener {

public void onItemSelected(AdapterView<?> parent,
    View view, int pos, long id) {
  Toast.makeText(parent.getContext()), "The planet is " +
      parent.getItemAtPosition(pos).toString(), Toast.LENGTH_LONG).show();
}

public void onNothingSelected(AdapterView parent) {
  // Do nothing.
}

}

Таким образом, функция onItemSelected выведет на экран элемент, выбранный в первом счетчике. Однако я не могу понять, как создать 2-й счетчик полностью на основе значения внутри 1-го счетчика.

Я знаю, что внутри onItemSelected нужно что-то сделать, но я просто не могу понять это, так как я новичок в Java Android.

Можете ли вы, ребята, помочь мне в этом?

Спасибо.


person Sammm    schedule 20.09.2010    source источник


Ответы (1)


Вы должны просто сделать что-то очень похожее на то, что вы делаете в onCreate, только с другим счетчиком. Например:

List<String> values = findValuesBySelection(parent.getItemAtPosition(pos).toString());
Spinner spinner2 = (Spinner) findViewById(R.id.spinner2);
ArrayAdapter<CharSequence> adapter = ArrayAdapter.createFromResource(
        this, values, android.R.layout.simple_spinner_item);
adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
spinner2.setAdapter(adapter);
person Cheryl Simon    schedule 20.09.2010