2012-03-14 7 views
3

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

Spinner filterSpinner = new Spinner(SearchResultsActivity.this); 
      filterSpinner.setPrompt("Filter By"); 
      ArrayAdapter<String> filterSpinnerArrayAdapter = new ArrayAdapter<String>(
        SearchResultsActivity.this, 
        android.R.layout.simple_spinner_item, 
        filterSpinnerArray); 
      filterSpinnerArrayAdapter 
        .setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); 
      filterSpinner.setAdapter(filterSpinnerArrayAdapter); 
      filterSpinner.performClick(); 
      filterSpinner.setOnItemSelectedListener(new FilterItemSelectedListener()); 

и вот код для обработки вертушку onItemSelected:

public class FilterItemSelectedListener implements OnItemSelectedListener { 

    public void onItemSelected(AdapterView<?> parent, View view, int pos, 
      long id) { 
     switch (pos) { 
     case 0: 

      Spinner filterBusSpinner = new Spinner(SearchResultsActivity.this); 
      filterBusSpinner.setPrompt("Filter Buses By"); 
      ArrayAdapter<String> filterBusSpinnerArrayAdapter = new ArrayAdapter<String>(
        SearchResultsActivity.this, 
        android.R.layout.simple_spinner_item, 
        filterByBusSpinnerArray); 
      filterBusSpinnerArrayAdapter 
        .setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); 
      filterBusSpinner.setAdapter(filterBusSpinnerArrayAdapter); 
      filterBusSpinner.performClick(); 
      break; 
     case 1: 
      Spinner filterTimeSpinner = new Spinner(SearchResultsActivity.this); 
      filterTimeSpinner.setPrompt("Filter By Time"); 
      ArrayAdapter<String> filterTimeSpinnerArrayAdapter = new ArrayAdapter<String>(
        SearchResultsActivity.this, 
        android.R.layout.simple_spinner_item, 
        filterByBusSpinnerArray); 
      filterTimeSpinnerArrayAdapter 
        .setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); 
      filterTimeSpinner.setAdapter(filterTimeSpinnerArrayAdapter); 
      filterTimeSpinner.performClick(); 
      break; 
     } 
    } 

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

Любая помощь будет принята с благодарностью ...

ответ

0

к моему лучшему знанию, прядильщик не откроется, если он не нарисован на экране. , поэтому перед filterTimeSpinner.performClick() вы должны прикрепить новый счетчик к существующему макету.

но, я сделал что-то similer к вашим потребностям с контекстным меню.

Я зарегистрирую контекстное меню для счетчика (который может быть спроектирован так, чтобы он выглядел так же, как строки с прядильщиками, если это необходимо), и когда элемент выбран, я открываю контекстное меню. (такой же эффект не так ли?)

надеюсь, что это поможет.
Влад

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

  • Нет связанных вопросов^_^