java - 将自定义对象列表转换为 CharSequence

标签 java android

我有一个名为 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/

相关文章:

java - Tomcat 7 "SEVERE: A child container failed during start"

c# - Xamarin Forms 如何制作全局工具栏?

android - RecyclerView 无限无限滚动问题

android - 以编程方式将边框/描边设置为矢量可绘制对象

android - 自定义键盘键文本阴影删除

java - 如何从Spring Security获取密码?

java - 无法在 Java 中同时使用 STDIN 和 STDERR 读取程序输出

java - vscode coderunner 执行java代码有问题

java - 使用 AngularJS 传递参数时 Resteasy @FormParam null

android - CSS:背景附件:固定在android中不起作用