Предоставление собственного представления списка для преференциальной деятельности - PullRequest
1 голос
/ 03 августа 2011

У меня есть класс, который простирается от ListView. Я добавил некоторые дополнительные функции (перетаскивание) для этого нового класса. У меня вопрос, есть ли способ использовать этот расширенный класс ListView в упражнении с предпочтениями.

Мне нужно предоставить функцию перетаскивания для унаследованного действия предпочтения.

Ответы [ 3 ]

2 голосов
/ 03 августа 2011

Вы спрашиваете, возможно ли открыть произвольное действие из элемента, по которому щелкнули, в задании предпочтения?Если это так, вам нужно сделать две вещи.Сначала добавьте элемент PreferenceScreen в XML-файл настроек:

<PreferenceScreen
    android:key="CUSTOM_ACTIVITY_KEY"
    android:title="Title"
    android:summary="Summary" />

Затем в настройках действия onCreate:

Preference pref = getPreferenceScreen().findPreference("CUSTOM_ACTIVITY_KEY");
final Intent intent = new Intent(this, CustomActivity.class);
if (pref != null)
{
    pref.setOnPreferenceClickListener(new OnPreferenceClickListener()
    {
        public boolean onPreferenceClick(final Preference preference)
        {
            startActivity(intent);

            return false;
        }
    });
}
0 голосов
/ 11 августа 2011

Я столкнулся с другим API в

android.preference.PreferenceScreen.bind(ListView listView)

Связывает ListView с настройками, содержащимися в этом PreferenceScreen через getRootAdapter().Поэтому после надувания файла макета мы сможем прикрепить наш пользовательский listview к этому preferenceScreen действия.

0 голосов
/ 04 августа 2011

Если недостаточно выполнить пользовательское действие из элемента PreferenceScreen, единственный другой вариант, о котором я могу подумать, - это развернуть собственную реализацию Preferences. Кто-то другой должен исправить меня, если я ошибаюсь, но я думаю, что можно было бы извлечь источник настроек и внести соответствующие изменения.

...