Bauerca drag-sort-listview simple example

后端 未结 1 1506
花落未央
花落未央 2020-12-07 11:11

Bauerca drag-sort-listview is an amazing library for the drag functionality in a list view.. https://github.com/bauerca/drag-sort-listview

BUT my problem is that the

1条回答
  •  一向
    一向 (楼主)
    2020-12-07 12:07

    Here's a short program of how to use the library that I just managed to write myself. Basically it's the same thing as the sample, just all in one place.

    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 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 list = new ArrayList(Arrays.asList(names));
            adapter = new ArrayAdapter(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;
        }
    }
    

    layout:

    
    
    
    
    

    0 讨论(0)
提交回复
热议问题