-2

Androidに「CATEGORY」というラベルの付いたドロップダウンを実装したいと思います。

ここで、「CATEGORY」ボタンをクリックすると、リストが表示されます。しかし、そのリストでアイテムを選択すると、ラベル「CATEGORY」を変更したくありません。

どうやってするか?

4

2 に答える 2

1

スピナーの仕組みを理解すれば、これは簡単です。:)

スピナーはgetViewメソッドを使用して閉じたスピナーにデータを入力し、getDropDownViewメソッドを使用してドロップダウンを作成します。この情報を使用して、閉じたビューに表示されている現在の選択以外のものを持つことができるカスタム アダプターを作成できます。これにより、データに非データ (「CATEGORY」という単語など) を含める必要がなくなります。

簡単な例:

public class CustomAdapter extends ArrayAdapter { 
    private Context context; 
    private int textViewResourceId; 
    private String[] objects; 

    public CustomAdapter(Context context, int textViewResourceId, 
            String[] objects) { 
        super(context, textViewResourceId, objects); 
        this.context = context; 
        this.textViewResourceId = textViewResourceId; 
        this.objects = objects; 
    } 

    @Override 
    public View getView(int position, View convertView, ViewGroup parent) { 
        if (convertView == null) 
            convertView = View.inflate(context, textViewResourceId, null); 
            TextView tv = (TextView) convertView; 
            tv.setText("CATEGORY"); 
        } 
        return convertView; 
    } 
} 

スピナーの残りの部分は通常どおり機能するため、onItemSelectedListener.

于 2012-09-21T14:10:27.113 に答える
0

メソッド内OnItemSelectedListenerで、選択の値を取得し、共有設定のどこかに保存し、:) を使用して位置をリセットしspinnersetSelection(0);ます。スピナーが再度クリックされた場合は、共有設定から値を読み込みます :)

于 2012-09-21T13:53:18.047 に答える