我想在我的微调控制器的下拉视图中显示两个值。自定义setDropDownViewResource微调项目的示例
目前,它只有一个城市名称,但我也想为它添加一个小距离字段。
MyCity<MyCityDistance> dataAdapter;
dataAdapter = new MyCity(this, R.layout.mycityrow, list);
dataAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
我有一个自定义数据适配器的所有代码,exapanding我的观点和支架等
然而,得到显示不显示这两个城市和从我的当前位置的距离的项目。
它只显示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
的布局显示。但是,当我单击打开下拉菜单时,该布局会丢失。我也希望在下拉选择过程中使用相同的布局。
我不知道它是如何与一个空的父母工作? – 2012-04-05 07:51:00
将父项传递为null相当于在使用LayoutInflater充气时将'attachToRoot'设置为false。 – st0le 2012-04-05 08:27:39
得到了解决这个代码的工具:)谢谢 – 2014-12-17 09:39:14