package com.digitallizard.bbcnewsreader.fragments; import android.os.Bundle; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import com.actionbarsherlock.app.SherlockFragment; import com.digitallizard.bbcnewsreader.CategoryChooserAdapter; import com.digitallizard.bbcnewsreader.R; import com.digitallizard.bbcnewsreader.data.DatabaseHandler; import com.mobeta.android.dslv.DragSortListView; public class CategoryChooserFragment extends SherlockFragment { /* constants */ /* variables */ private DatabaseHandler database; private CategoryChooserAdapter adapter; private DragSortListView listView; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); // load the categories from the database database = new DatabaseHandler(getActivity()); String[] enabledCategories = database.getEnabledCategories()[1]; String[] disabledCategories = database.getDisabledCategories()[1]; // create the list adapter adapter = new CategoryChooserAdapter(getActivity(), enabledCategories, disabledCategories); } @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { // inflate the layout View view = inflater.inflate(R.layout.category_chooser, container, false); // connect the listview to the adapter and set dragging stuff listView = (DragSortListView) view.findViewById(R.id.categoryChooserListView); listView.setAdapter(adapter); listView.setDropListener(dropListener); return view; } private DragSortListView.DropListener dropListener = new DragSortListView.DropListener() { @Override public void drop(int from, int to) { // remove the item from the old position and insert it at the new one if(from != to) { String item = adapter.getItem(from); adapter.move(item, from, to); } } }; public void saveCategories() { database.setCategoryStates(adapter.getEnabledCategories(), adapter.getDisabledCategories()); } }