【发布时间】:2018-09-22 05:51:49
【问题描述】:
Android 新手,我有一个简单的应用程序,其中包含微调器和相关的 ArrayAdapter 工作:当事物被选中时,我似乎能够并触发一些计算。然后我正在保存当前选定的项目。
在某些时候,我检索保存的值,并希望将微调器定位在该值处:基本上是 setPosition() 将微调器指向该对象。
我找到了许多格式相同的教程:在 ArrayAdapter 上使用 getPosition(),并传入您要查找的对象...问题是,它一直返回 -1(未找到)。
调试中,我已经验证我传递的对象不为空,ArrayAdapter 也是如此,并且 ArrayAdapter getCount 也返回了它应该有的项目(所以它不为空)。
我不知所措。欣赏任何...指针? :-)
/* ArrayAdapter 类看起来像这样*/
public class MyAdapter extends ArrayAdapter<MyClass> {
// Constructor
MyAdapter(@NonNull Context context, int resource, @NonNull List<MyClass> objects) {
super(context, resource, objects);
}
}
/* 片段如下*/
final MyAdapter mAdapter = new MyAdapter(
requireActivity(),
android.R.layout.simple_spinner_item,
objects);
Spinner mySpinner = fragment_view.findViewById(R.id.my_spinner);
mySpinner.setAdapter(mAdapter);
// assume I have one "object" of MyClass,
// and want to search for it in "MyAdapter"
int spinnerPosition = mAdapter.getPosition(objectToBeFound); // returns -1
mySpinner.setSelection(spinnerPosition);
【问题讨论】:
-
developer.android.com/reference/android/widget/…这个和测试目的,我建议你迭代适配器项目并检查你是否有那个项目。
标签: android