当从微调器的下拉列表中选择时,我想在 textView
中显示所选项目,我实现了 AdapterView.OnItemSelectedListener
但当我选择项目时,它总是 null/empty
这是我的代码:
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
spinner = (Spinner) findViewById(R.id.spinner);
spinner.setAdapter(new CustomAdapter(MainActivity.this, Languages));
btn.setOnClickListener(this);
spinner.setOnItemSelectedListener(this);
}
@Override
public void onItemSelected(AdapterView<?> parent,
View view, int position, long id) {
item = (String)parent.getItemAtPosition(position);
Toast.makeText(MainActivity.this, item.toString(),
Toast.LENGTH_SHORT).show();
}
@Override
public void onNothingSelected(AdapterView<?> parent) {
}
最佳答案
所以答案来源:https://stackoverflow.com/a/49301966/5461982
我知道这是一个较旧的问题,但如果其他人遇到这个问题,请务必检查您为 Spinner 设置的适配器的自定义实现是否覆盖 getItem
方法:
@Override
public Object getItem(int position) {
return spinnerItems.get(position);
}
默认情况下,您需要在实现自定义 BaseAdapter
时重写此方法,但默认返回类型为 null
。请务必将返回类型修改为 return spinnerItems.get(position)
。
希望这有帮助,我最初花了大约 30 分钟尝试解决这个问题!
关于java - 旋转器 : getItemAtPosition(position) is returning always null/empty,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45188309/