2012-03-14 58 views
3

我有一个微调,与onItemSelect我需要打开另一个微调基于第一选择。这里是代码...我能够膨胀第一个微调,但选择一个进入什么也没有发生Android:微调onItemSelect充气另一个微调

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。

我注册一个上下文菜单到微调(它可以被设计为看起来就像微调行,如果需要),当一个项目被选中时,我打开上下文菜单。 (同样的效果不是吗?)

希望它有帮助。
Vlad