私のスピナーのドロップダウンビューに2つの値を表示したいと思います。カスタム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);
しかし、ない成功を設定してみました。エラーが発生します。独自のカスタムsetDropDownViewResource()
を作成する良い例は
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()
行をコメントアウトしても、同じエラーが発生します。
注:mycityrow
の現在の唯一の効果は、Spinnerの最初の要素がmycityrow
のレイアウトに従って表示されていることです。しかし、ドロップダウンを開くと、そのレイアウトは失われます。ドロップダウン選択時にも同じレイアウトが必要です。
それはnullの親とどのように動作するのだろうか? –
親をnullにすることは、LayoutInflaterを使って膨張させたときに 'attachToRoot'をfalseとして渡すのと同じです。 – st0le
このコードを実装するソリューションを得ました:)ありがとう –