自定义 setDropDownViewResource 微调器项的示例
2022-09-04 08:36:15
我想在微调器的下拉视图中显示两个值。
目前,它只有一个城市名称,但我也想添加一个小距离字段。
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()
注意: 当前唯一的影响是 Spinner 的第一个元素按照 的布局显示。但是,当我单击“打开下拉列表”时,该布局将丢失。我也希望在下拉选择期间使用相同的布局。mycityrow
mycityrow