【问题标题】:FATAL EXCEPTION: main java.lang.ClassCastException: When adding an onItemSelected listener致命异常:主要 java.lang.ClassCastException:添加 onItemSelected 侦听器时
【发布时间】:2014-11-16 19:41:52
【问题描述】:

我正在创建一个基于 web 服务调用的微调器,其中项目构建在一个循环中。

在启动循环之前,我想添加一个默认的“选择项目”项,但是当我这样做时,我得到了一个致命的异常:

致命异常:主要 java.lang.ClassCastException: com.anyscreeninc.posterviewer.Events 不能转换为 java.lang.CharSequence

if (status.contentEquals("complete")){
    final Spinner event_spinner = (Spinner)findViewById(R.id.events);

    EventAdapter eAdapter = new EventAdapter(posterSessionSetup.this, android.R.layout.simple_spinner_dropdown_item, eventList);

    event_spinner.setAdapter(eAdapter);

//When I add this listener I get the error....
//============================================

    event_spinner.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener(){

    @Override
    public void onItemSelected(AdapterView adapter, View v, int i, long lng) {
        Toast.makeText(getApplicationContext(), (CharSequence)  event_spinner.getSelectedItem(), Toast.LENGTH_SHORT).show();
    }

    @Override
    public void onNothingSelected(AdapterView arg0) {
        Toast.makeText(getApplicationContext(), "Nothing selected", Toast.LENGTH_SHORT).show();        
    }
    });
}

这是我修改后的 EventAdapter

public class EventAdapter extends ArrayAdapter<Events> {
    private Activity context;
    ArrayList<Events> data = null;

    public EventAdapter(Activity context, int resource,
                          ArrayList<Events> data) {
        super(context, resource, data);
        this.context = context;
        this.data = data;
    }

    @Override
    public View getView(int position, View convertView, ViewGroup parent) {
        return super.getView(position, convertView, parent);
    }


}

我正在根据几个不同的教程构建这些东西。

我试图将 Listener 中的 (CharSequence) 更改为 (ArrayList) 但 AndroidStudio 告诉我“无法解析方法”

【问题讨论】:

    标签: java android listener spinner


    【解决方案1】:

    这样做应该可以。

    Toast.makeText(getApplicationContext(), event_spinner.getSelectedItem().toString(), Toast.LENGTH_SHORT).show();
    

    【讨论】:

    • 如果我想要选中项的值怎么办?就像在 HTML 中一样,您可以执行
    • @silversunhunter 为什么你不先检查文档或谷歌? stackoverflow.com/questions/1947933/how-to-get-spinner-value
    • @MarcinOrlowski 为什么你认为我没有?我搜索但不明白出了什么问题。抱歉,我是 Java 新手。
    • @silversunhunter 因为当您搜索“android spinner current value”时,我给出的链接显示为第一个。 Java 对此一无所知。
    猜你喜欢
    • 1970-01-01
    • 2023-03-28
    • 1970-01-01
    • 1970-01-01
    • 2012-03-04
    • 2013-05-08
    • 1970-01-01
    • 2018-04-30
    相关资源
    最近更新 更多