无法连续多次选择微调器下拉菜单项
问题描述:
我的问题是,我可以在微调器下拉菜单中选择一个列表项目,但我无法一次选择多个项目另一个项目。必须有方法来更改父类中的选择参数。任何想法如何?无法连续多次选择微调器下拉菜单项
我在我的微调下拉菜单中有几个项目。
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
}
答
声明我的接口覆盖您需要设置监听器实现自定义微调如下:
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());
}
}
}
可能的重复[如何在当前选定的项目被再次选择时在Android微调器中获取事件?](https://*.com/questions/5335306/how-can-i-get-an-事件在-机器人微调-当最当前选择的项目,是-塞莱) –