亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Spinner實現選項的拖拽排序與位置記憶

發布時間:2024-08-16 17:29:29 來源:億速云 閱讀:79 作者:小樊 欄目:移動開發

要實現Spinner選項的拖拽排序與位置記憶,可以通過自定義Adapter來實現。下面是一個簡單的示例代碼:

public class DragSortSpinnerAdapter extends ArrayAdapter<String> implements View.OnTouchListener {

    private SparseBooleanArray selectedItems;
    private int lastPosition = -1;

    public DragSortSpinnerAdapter(Context context, int resource, List<String> objects) {
        super(context, resource, objects);
        selectedItems = new SparseBooleanArray();
    }

    @Override
    public View getDropDownView(int position, View convertView, ViewGroup parent) {
        View view = super.getDropDownView(position, convertView, parent);
        view.setTag(position);
        view.setOnTouchListener(this);
        return view;
    }

    @Override
    public boolean onTouch(View v, MotionEvent event) {
        View view = (View) v.getParent();
        int position = (int) view.getTag();

        switch (event.getAction()) {
            case MotionEvent.ACTION_DOWN:
                lastPosition = position;
                break;

            case MotionEvent.ACTION_MOVE:
                if(lastPosition != -1 && lastPosition != position) {
                    String item = getItem(lastPosition);
                    remove(item);
                    insert(item, position);
                    selectedItems.clear();
                    selectedItems.put(position, true);
                    notifyDataSetChanged();
                    lastPosition = position;
                }
                break;

            default:
                lastPosition = -1;
                break;
        }

        return true;
    }

    @Override
    public View getView(int position, View convertView, ViewGroup parent) {
        View view = super.getView(position, convertView, parent);
        if(selectedItems.get(position)) {
            view.setBackgroundColor(Color.LTGRAY);
        } else {
            view.setBackgroundColor(Color.TRANSPARENT);
        }
        return view;
    }
}

在使用Spinner時,可以使用這個自定義Adapter來實現拖拽排序和位置記憶的功能。當用戶在Spinner選項上按下并移動時,會觸發onTouch方法,Adapter會根據移動的位置重新排序選項,并在getView方法中根據selectedItems來設置選中項的背景色。這樣就可以實現Spinner選項的拖拽排序與位置記憶功能了。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

巴林右旗| 若尔盖县| 南汇区| 博湖县| 奉化市| 唐海县| 迁西县| 叙永县| 浦东新区| 融水| 土默特右旗| 出国| 桑植县| 普洱| 时尚| 阜新市| 汝城县| 田阳县| 乌恰县| 榆树市| 海门市| 三门县| 红原县| 高州市| 潞西市| 南宁市| 罗定市| 崇阳县| 吴江市| 富蕴县| 富民县| 凤城市| 夹江县| 余江县| 巴楚县| 泗阳县| 托里县| 平泉县| 德保县| 元阳县| 乐平市|