java - 如何从微调器中检索特定对象信息
问题描述
我正在处理我的 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();
的信用并将它们加在一起,但我不确定如何获取微调器列表中的对象。Course
getCredits();
+=
编辑:抱歉不清楚。每个微调器包含大约 300 个对象,这些对象是从 ArrayList 中提取的,该 ArrayList 是通过 TreeMap 填充的,TreeMap 从文本文件中获取对象
解决方案
微调器列表总是由其适配器提供的字符串填充,因此当从微调器中选择一个项目时,您不能期望除了字符串之外的其他内容;所以你需要一些方法来利用这个字符串来获取你的自定义对象(在你的例子中是“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
}
}
如果您需要任何进一步的帮助,我将非常欢迎!
推荐阅读
- sql - Linq 查询不到 100 条记录的表耗时超过 20 秒
- electron - 在 linux 中使用 Vue CLI Plugin Electron Builder 为 windows 构建可执行文件
- angular - Angular CLI 的问题
- assembly - 不使用 DPMI 从 DOS 切换到保护模式
- html - 显示:显示中的弹性:断点中没有在 OSX 上的 Safari 中不起作用
- reactjs - 与 GraphQL 反应:TypeError: parse is not a function
- r - extracting part of path using sub
- c++ - adding numbers 100-299 to an array
- powershell - 如何从 Publish-Module 中捕获异常?
- c# - Marshal.PtrToStructure
(IntPtr ptr, T structure) throws [System.ArgumentException]: 该结构不能是值类