【发布时间】:2010-10-22 03:14:45
【问题描述】:
我有一个想要显示为 Spinner 的 ArrayList()。问题是,我需要显示 File.toString() 以外的内容。我想将 Spinner 的视图文本设置为文件名(格式化),而不是 File.toString() 返回的完整文件路径,所以我相信这排除了仅使用 ArrayAdapter 的可能性?谢谢!
【问题讨论】:
我有一个想要显示为 Spinner 的 ArrayList()。问题是,我需要显示 File.toString() 以外的内容。我想将 Spinner 的视图文本设置为文件名(格式化),而不是 File.toString() 返回的完整文件路径,所以我相信这排除了仅使用 ArrayAdapter 的可能性?谢谢!
【问题讨论】:
ArrayAdapter 的 Android SDK 文档推荐以下内容:
覆盖对象的 toString() 方法以确定将为列表中的项目显示哪些文本。
这意味着您仍然可以使用ArrayAdapter,但是您需要创建一个包含您的真实文件的包装器对象,例如FileFormat,它会用您想要的格式覆盖toString()。
class FileFormat {
private File delegate;
FileFormat (File delegate) {
this.delegate = delegate;
}
public String toString() {
return formatAllPrettyAndWhatNot (delegate);
}
};
//then use a ArrayList<FileFormat>(), in your array spinner adapter
【讨论】: