ListView Reorder Items - PullRequest
       30

ListView Reorder Items

2 голосов
/ 08 февраля 2012

Я пытался посмотреть ответы, но не смог найти ни одного.

Итак, я хочу изменить порядок элементов ListView в приложении, и я понятия не имею, как это сделать. Я думаю, что перетаскивание слишком сложно построить, но как насчет кнопок со стрелками, где вы можете нажимать вверх и перемещать элементы на одну строку вверх? А как сделать так, чтобы приложение запоминало порядок, чтобы в следующий раз, когда я его открывал, все элементы были в порядке, куда я их переместил?

У меня есть элементы ListView в их собственном файле (values-> arrays.xml). И вот моя активность ListView:

public class MainScreen extends ListActivity implements OnClickListener{


    /** Called when the activity is first created. **/
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);

        final String[] links = getResources().getStringArray(R.array.links);

        setListAdapter(ArrayAdapter.createFromResource(getApplicationContext(),
                R.array.items, R.layout.rowlayout));


        getListView().setOnItemClickListener(new OnItemClickListener() {


            public void onItemClick(AdapterView<?> parent, View view,
                    int position, long id) {
                String content = links[position];
                Intent showContent = new Intent(getApplicationContext(),
                        Web.class);
                showContent.setData(Uri.parse(content));
                startActivity(showContent);
            }

        });

    }
}

У кого-нибудь есть идеи, как заставить это работать? :)

Ответы [ 2 ]

3 голосов
/ 08 февраля 2012

Легко реализовать функцию перетаскивания в список на Android 3.0+. Проверьте документы:

http://developer.android.com/guide/topics/ui/drag-drop.html

Если вы хотите предварительно сотовое решение, попробуйте это:

https://github.com/commonsguy/cwac-touchlist

1 голос
/ 08 февраля 2012

Насколько я знаю, Строковые ресурсы являются статическими, поэтому вы не можете манипулировать xml в коде (чтобы изменить порядок, добавить / удалить элементы .. и т. Д.).

НоЯ могу придумать два решения для вашей проблемы.

  1. Сохраните нужный вам порядок в SharedPreferences и примените его к вашему String[] в onCreate() (например, сохранить последовательность вашего индекса массива строк - жутко, но я думаю, что он будет работать)

  2. Изучите и начните использовать базу данных SqlLite , если это то, что выпытаясь избежать:)

Редактировать

Чтобы узнать, как использовать SharedPreferences: проверьте фрагмент кода здесь http://developer.android.com/guide/topics/data/data-storage.html

...