我有一个名为 customObjectList
的自定义对象列表。我想让它绑定(bind)到AlertDialog.Builder.setMultiChoiceItems()
,需要先把它转换成CharSequence,
我是这样做的:customObjectList.toArray(new CharSequence[customObjectList.size()])
但是我得到了这个错误:
java.lang.ArrayStoreException: source[0] of type com.idea.customobject cannot be stored in destination array of type java.lang.CharSequence[]
正确的转换方式是什么?
最佳答案
错误的原因是您试图创建一个未实现CharSequence
接口(interface)的CharSequence
(您的CustomObject
类)。如果两种类型相同,则可以使用 toArray
方法,但事实并非如此。所以我建议的替代方案就是手动完成。我想你的 customObject
类有某种你想在选项中显示的字符串值,所以只需使用它然后做一个 for 循环,就像这样:
CharSequence[] myArray = new CharSequence[customObjectList.size()];
for(int i = 0; i < customObjectList.size(); i++){
myArray[i] = customObjectList.get(i).getTitle(); // Whichever string you wanna store here from custom object
}
现在您可以简单地将 myArray
用于 setMultiChoiceItems
。希望你理解这个想法,我也遇到了你的问题。
关于java - 将自定义对象列表转换为 CharSequence,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42609733/