web-dev-qa-db-fra.com

Exemple simple Bauerca drag-sort-listview

Bauerca drag-sort-listview est une bibliothèque incroyable pour la fonctionnalité de glisser dans une vue de liste .. https://github.com/bauerca/drag-sort-listview

MAIS mon problème est que le projet de démonstration est assez complexe, je ne peux pas le suivre pour inclure la fonctionnalité dans mon projet ..

Tout exemple simple serait apprécié ..

Par exemple, j'ai juste besoin d'un écran avec cette liste personnalisée qui contient trois éléments .. Ou tout autre exemple simple ..

Je vous remercie

40
AntounG

Voici un petit programme expliquant comment utiliser la bibliothèque que je viens de réussir à écrire moi-même. Fondamentalement, c'est la même chose que l'échantillon, juste en un seul endroit.

package com.example.dndlist;

import Java.util.ArrayList;
import Java.util.Arrays;

import Android.app.Activity;
import Android.os.Bundle;
import Android.view.Menu;
import Android.widget.ArrayAdapter;


import com.mobeta.Android.dslv.DragSortController;
import com.mobeta.Android.dslv.DragSortListView;

public class MainActivity extends Activity
{ 
    DragSortListView listView;
    ArrayAdapter<String> adapter;

    private DragSortListView.DropListener onDrop = new DragSortListView.DropListener()
    {
        @Override
        public void drop(int from, int to)
        {
            if (from != to)
            {
                String item = adapter.getItem(from);
                adapter.remove(item);
                adapter.insert(item, to);
            }
        }
    };

    private DragSortListView.RemoveListener onRemove = new DragSortListView.RemoveListener()
    {
        @Override
        public void remove(int which)
        {
            adapter.remove(adapter.getItem(which));
        }
    };


    @Override
    protected void onCreate(Bundle savedInstanceState)
    {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        listView = (DragSortListView) findViewById(R.id.listview);
        String[] names = getResources().getStringArray(R.array.random_names);
        ArrayList<String> list = new ArrayList<String>(Arrays.asList(names));
        adapter = new ArrayAdapter<String>(this,
                R.layout.item_layout, R.id.textView1, list);
        listView.setAdapter(adapter);
        listView.setDropListener(onDrop);
        listView.setRemoveListener(onRemove);

        DragSortController controller = new DragSortController(listView);
        controller.setDragHandleId(R.id.imageView1);
                //controller.setClickRemoveId(R.id.);
        controller.setRemoveEnabled(false);
        controller.setSortEnabled(true);
        controller.setDragInitMode(1);
                //controller.setRemoveMode(removeMode);

        listView.setFloatViewManager(controller);
        listView.setOnTouchListener(controller);
        listView.setDragEnabled(true);
    }

    @Override
    public boolean onCreateOptionsMenu(Menu menu)
    {
        // Inflate the menu; this adds items to the action bar if it is present.
        getMenuInflater().inflate(R.menu.main, menu);
        return true;
    }
}

disposition:

<RelativeLayout xmlns:Android="http://schemas.Android.com/apk/res/Android"
xmlns:tools="http://schemas.Android.com/tools"
xmlns:dslv="http://schemas.Android.com/apk/res/com.example.dndlist"
Android:layout_width="match_parent"
Android:layout_height="match_parent"
Android:paddingBottom="@dimen/activity_vertical_margin"
Android:paddingLeft="@dimen/activity_horizontal_margin"
Android:paddingRight="@dimen/activity_horizontal_margin"
Android:paddingTop="@dimen/activity_vertical_margin"
tools:context=".MainActivity" >

<com.mobeta.Android.dslv.DragSortListView
    Android:id="@+id/listview"
    Android:layout_width="fill_parent"
    Android:layout_height="fill_parent"
    Android:layout_margin="10dp"
    Android:dividerHeight="5dp"
    Android:paddingBottom="0dp"
    Android:paddingLeft="10dp"
    Android:paddingTop="0dp"
    dslv:collapsed_height="2dp"
    dslv:drag_enabled="true"
    dslv:drag_handle_id="@drawable/drag_handle" 
    dslv:drag_scroll_start="0.33"
    dslv:drag_start_mode="onMove"
    dslv:float_alpha="0.6"
    dslv:max_drag_scroll_speed="0.5"
    dslv:remove_enabled="true"
    dslv:remove_mode="flingRemove"
    dslv:slide_shuffle_speed="0.3"
    dslv:sort_enabled="true"
    dslv:track_drag_sort="false"
    dslv:use_default_controller="true" />
</RelativeLayout>
55
Lescai Ionel