2017-06-16 92 views
0

我的问题是,我可以在微调器下拉菜单中选择一个列表项目,但我无法一次选择多个项目另一个项目。必须有方法来更改父类中的选择参数。任何想法如何?无法连续多次选择微调器下拉菜单项

我在我的微调下拉菜单中有几个项目。

dropdownMenu = (Spinner) findViewById(R.id.dropdownMenu); 

List<String> list = new ArrayList<>(); 

list.add("Filters"); 
list.add("list 2"); 
list.add("list 3"); 

ArrayAdapter<String> dataAdapter = new ArrayAdapter<>(this, 
     android.R.layout.simple_spinner_item, list); 

dataAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); 

dropdownMenu.setAdapter(dataAdapter); 

我的主要活动来延长AdapterView.OnItemSelectedListener接口,和我使用的MainActivity

dropdownMenu.setOnItemSelectedListener(this); 

下面的实例中MainActivity

public void onItemSelected(AdapterView<?> parent, View view, 
          int pos, long id) { 
    // An item was selected. You can retrieve the selected item using 
    // parent.getItemAtPosition(pos) 
    Log.v(TAG,"SELECTED"); 

    // There must be a way to change the selected 
    // property to false here 
} 

public void onNothingSelected(AdapterView<?> parent) { 
    // Another interface callback 
} 
+0

可能的重复[如何在当前选定的项目被再次选择时在Android微调器中获取事件?](https://stackoverflow.com/questions/5335306/how-can-i-get-an-事件在-机器人微调-当最当前选择的项目,是-塞莱) –

回答

0

声明我的接口覆盖您需要设置监听器实现自定义微调如下:

public class CustomSpinner extends Spinner { 

    public CustomSpinner(Context context) { 
     super(context); 
    } 

    public CustomSpinner(Context context, AttributeSet attrs) { 
     super(context, attrs); 
    } 

    public CustomSpinner(Context context, AttributeSet attrs, int defStyle) { 
     super(context, attrs, defStyle); 
    } 

    @Override 
    public void setSelection(int position, boolean animate) { 
     boolean sameSelected = position == getSelectedItemPosition(); 
     super.setSelection(position, animate); 
     if (sameSelected) { 
      // Spinner does not call the OnItemSelectedListener if the same item is selected, so do it manually now 
      getOnItemSelectedListener().onItemSelected(this, getSelectedView(), position, getSelectedItemId()); 
     } 

    } 

    @Override 
    public void setSelection(int position) { 
     boolean sameSelected = position == getSelectedItemPosition(); 
     super.setSelection(position); 
     if (sameSelected) { 
      // Spinner does not call the OnItemSelectedListener if the same item is selected, so do it manually now 
      getOnItemSelectedListener().onItemSelected(this, getSelectedView(), position, getSelectedItemId()); 
     } 
    } 
}