我想在我的微調控制器的下拉視圖中顯示兩個值。自定義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