Android: как использовать кнопки на экране настроек

Я хотел бы предоставить кнопку в PreferenceActivity. Пользователь должен иметь возможность установить время (например, через TimePicker), но нет ButtonPreference или чего-то подобного. Я не хочу использовать EditTextPreference.

Итак, мне нужно использовать кнопку по умолчанию в PreferenceActivity и сохранять для нее настройки вручную?

С уважением,

коди




Ответы (2)


Создайте пользовательский DialogPreference, который включает виджет TimePicker. Кнопка не требуется. Должно быть менее 100 строк кода.

Вот пример проекта, показывающий, среди прочего, пользовательский ColorPreference.

person CommonsWare    schedule 20.10.2010

Вы можете поместить кнопку в файл activity_layout.xml. Например, если «Activity_Setup.java» — это действие установки, «activity_setup.xml» — его макет, а «myprefs.xml» — файл, в котором хранится ваш предпочтительный макет, то

вы должны поместить кнопку в «activity_setup.xml» под списком, наиболее предпочтительно в TableRow, например:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="fill_parent"
android:orientation="vertical"
android:id="@+id/llprefs">

<ListView
    android:id="@+id/android:list"
    android:tag="lvprefs"
    android:layout_width="match_parent"
    android:layout_height="0.0dp"
    android:layout_weight="1" >
</ListView>

    <TableRow
    android:id="@+id/tableRow1"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_marginTop="20dp"
     >

    <Button
        android:id="@+id/btRegister"
        android:layout_width="wrap_content"
        android:layout_height="fill_parent"
        android:layout_weight="1"
        android:text="@string/IdonothaveA"
        android:onClick="onClick"
         />

    <Button
        android:id="@+id/btForgot"
        android:layout_width="wrap_content"
        android:layout_height="fill_parent"
        android:layout_weight="1"
        android:text="@string/Iforgot"
        android:onClick="onClick" />
   <!--  
    <Button
        android:id="@+id/btContact"
        android:layout_width="wrap_content"
        android:layout_height="fill_parent"
        android:layout_weight="1"
        android:text="@string/Contact"
        android:onClick="onClick" />
     -->

</TableRow>

person jimver04    schedule 26.09.2012
comment
Этот вопрос был довольно старым - подумайте и о том, чтобы проверить некоторые из последних. Добро пожаловать в Stack Overflow! - person GargantuChet; 26.09.2012