【发布时间】:2012-04-15 18:34:10
【问题描述】:
我想在微调器的下拉视图中显示两个值。
目前,它只有一个城市名称,但我还想在其中添加一个小的距离字段。
MyCity<MyCityDistance> dataAdapter;
dataAdapter = new MyCity(this, R.layout.mycityrow, list);
dataAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
我有自定义数据适配器的所有代码,扩展我的视图和持有者等。
但是,显示的项目不会同时显示城市及其与我当前位置的距离。
它只显示 MyCityDistance 类的 toString() 方法中覆盖的内容。
我什至尝试过设置
dataAdapter.setDropDownViewResource(R.layout.mycityrow);
但是,没有成功。它抛出一个错误。
04-02 11:05:22.600: E/AndroidRuntime(367): java.lang.IllegalStateException: ArrayAdapter requires the resource ID to be a TextView
04-02 11:05:22.600: E/AndroidRuntime(367): at android.widget.ArrayAdapter.createViewFromResource(ArrayAdapter.java:347)
04-02 11:05:22.600: E/AndroidRuntime(367): at android.widget.ArrayAdapter.getDropDownView(ArrayAdapter.java:376)
04-02 11:05:22.600: E/AndroidRuntime(367): at android.widget.Spinner$DropDownAdapter.getDropDownView(Spinner.java:332)
创建自己的自定义setDropDownViewResource() 的好例子是什么?
即使我注释掉 setDropDownViewResource() 行,我也会收到同样的错误。
注意:mycityrow 当前唯一的效果是 Spinner 的第一个元素按照mycityrow 的布局显示。但是,当我单击打开下拉菜单时,该布局将丢失。我也想在下拉选择中使用相同的布局。
【问题讨论】:
标签: java android android-layout layout android-widget