1

現在AndroidにSpinnerを実装していますが、2つのアレイをSpinnerにリンクするのに問題があります。1つはスピナーが拡張されていない場合、もう1つは拡張されている場合です。

したがって、スピナーは、展開されていない場合、次のようになります。 小さなスピナー

そして、それが展開されると、それにリンクされた配列は、文字列の短縮バージョンから長いバージョンに変わります。 拡張スピナー

スピナーに触れたときに配列を変更し、キャンセルしたときに元に戻すことを考えましたが、これは面倒になるか、スピナーのようなボタンを作成してカスタムのListViewダイアログを開くと思います。カスタムスピナーとして機能しますが、これはやり過ぎのようです。もっと簡単な方法はありますか?

4

1 に答える 1

1

この効果を実現するために、独自のアダプターを実装できます。「展開された」ビューを返す getView() と、「折りたたまれた」ビューを返す getDropDownView() をオーバーライドします。convertView を活用することを忘れないでください。

    ArrayAdapter<String> adapter = new ArrayAdapter<String>(getActivity(), 0, objects) {
        @Override
        public View getDropDownView(int position, View convertView, ViewGroup parent) {
            //inflate and return the view you want to see as the non-expanded droplist
        }

        @Override
        public View getView(int position, View convertView, ViewGroup parent) {
            //inflate and return the expanded view
        }
    };
于 2013-02-04T16:12:59.910 に答える