从没想过使用基本控件也会采坑,查找资料后写一个demo测试一番。
【坑1】默认选择第一项并且执行一次onItemSelected事件。
【坑2】同一个item选中第二次的时候不触发OnItemSelectedListener(PS:有时候这反而是优点,如选择语言时,现在已经是简体中文,你再点击设置简体中文无效。)。
【坑3】Spinner弹出框遮挡住显示框。
下面看解决办法:
Spinner mySpinner;
private void initSpinner() {
ArrayAdapter<String> adapter = new ArrayAdapter<String>(this, android.R.layout.simple_spinner_item, getData());
adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
mySpinner = findViewById(R.id.my_spinner);
mySpinner.setAdapter(adapter);
mySpinner.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
@Override
public void onItemSelected(AdapterView<?> adapterView, View view, int i, long l) {
Toast.makeText(MainActivity.this,dataList.get(i),Toast.LENGTH_SHORT).show