首页 > 解决方案 > 如何从微调器中检索特定对象信息

问题描述

我正在处理我的 android 应用程序中的一些微调器,单击按钮时我想获取特定的对象信息。我知道,mySpinner.getSelectedItem().toString();但这会打印出我的 ObjectstoString();方法。假设我想getCredits();Course当前在微调器上选择的对象中提取。我该怎么办?

这里是让你知道我想要做什么:

for(int i = 0; i < allSpinners.size(); i++) {
            System.out.println(allSpinners.get(i).getSelectedItem().toString());

        }

我需要从列表中的所有微调器中获得所有功劳。这段代码不需要通过方法获取对象System.out.println();的信用并将它们加在一起,但我不确定如何获取微调器列表中的对象。CoursegetCredits();+=

编辑:抱歉不清楚。每个微调器包含大约 300 个对象,这些对象是从 ArrayList 中提取的,该 ArrayList 是通过 TreeMap 填充的,TreeMap 从文本文件中获取对象

标签: javaandroidandroid-studiospinner

解决方案


微调器列表总是由其适配器提供的字符串填充,因此当从微调器中选择一个项目时,您不能期望除了字符串之外的其他内容;所以你需要一些方法来利用这个字符串来获取你的自定义对象(在你的例子中是“Course”);一个switch语句是通过获取String从返回的“课程名称”来实现的mySpinner.getSelectedItem().toString();,然后在每个switch case实例上实例化一个Course对象,然后像在你的示例中那样做任何你想做的事情getCredits();

如果您要触发侦听器,则同样适用

mySpinner.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
    @Override
    public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {
        switch(position) // switch on item position in adapter

        String selection = (String) parent.getItemAtPosition(position);
        switch(selection) // switch on item String
    }
}

如果您需要任何进一步的帮助,我将非常欢迎!


推荐阅读