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

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

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

С уважением,

коди




Ответы (2)


arrow_upward
5
arrow_downward

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

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

person CommonsWare    schedule 20.10.2010

arrow_upward
0
arrow_downward

Вы можете поместить кнопку в файл 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