java - 旋转器 : getItemAtPosition(position) is returning always null/empty

标签 java android android-spinner onitemselectedlistener

当从微调器的下拉列表中选择时,我想在 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/

相关文章:

java - 如何在 Java 中指定文件的路径?

java - 选择微调项目值

java - 返回动态语言用户的基本 Java 库和实用程序是什么?

java - 汉诺塔 : Finding the n-th configuration

java - 在Spring中使用MethodInterceptor

android - Weex跨设备本地 Assets 定位

android - 即使手机处于静音/请勿打扰模式也能播放声音

android - 使用缓存提高带有图像的 Android ListView 中的滚动性能

android - 微调 View ;选择器不工作

android-layout - Android应用程序在setOnItemSelectedListener上崩溃