Android: Как сделать собственный PreferenceScreen?

Я пытаюсь создать PreferenceScreen, но я хочу, чтобы дизайн Activity был похож на все проекты.

Как создать собственный дизайн PreferenceScreen?


person Basbous    schedule 19.01.2012    source источник
comment
Извините, не могли бы вы расширить свой вопрос? Или, может быть, сделать его более чистым? Я думаю, что у вас проблемы с дизайном/графикой   -  person StErMi    schedule 19.01.2012
comment
да, но я хочу спросить, это выполнимо.   -  person Basbous    schedule 19.01.2012


Ответы (2)


Я думаю, это то, что вы ищете.

PreferenceScreen screen = createPreferenceHierarchy();

..
this.setContentView(rootView); => я думаю, вы также можете установить его из макета xml.

setPreferenceScreen(screen);
person AD14    schedule 19.01.2012

Да, это выполнимо. Извиняюсь за макет, моя вставка никогда не сохраняет правильное форматирование, но содержание работает...

Настройки.java

  import android.content.Intent;
  import android.os.Bundle;
  import android.preference.PreferenceActivity;
  import android.view.View;
  import android.widget.Button;

  public class Preferences extends PreferenceActivity {
    @Override
    protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.preference_holder);
    addPreferencesFromResource(R.layout.preferences);

    Button backButton = (Button) findViewById(R.id.backPrefBurron);
    backButton.setOnClickListener(new View.OnClickListener() {
        public void onClick(View view) {
            Intent myIntent = new Intent(getBaseContext(),
                    BTFirstTab.class);
            startActivity(myIntent);
        }
    });

     }
  }

затем файл с настройками.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent" android:layout_height="fill_parent"
android:orientation="vertical">
<LinearLayout android:orientation="horizontal"
    android:background="@color/bto_dark_green" android:layout_width="fill_parent"
    android:gravity="center_vertical" android:layout_height="wrap_content"
    android:paddingTop="4dip">
    <Button android:id="@+id/backPrefBurron" android:layout_width="wrap_content"
        android:layout_height="wrap_content" android:text="Home" />

    <TextView android:id="@+id/backText" android:textSize="14dip"
        android:paddingLeft="5dip" android:textColor="@color/white"
        android:textStyle="bold" android:layout_width="wrap_content"
        android:layout_height="wrap_content" android:layout_weight="1.0"
        android:text="Preferences: Home will update all areas of the app" />
</LinearLayout>
<ListView android:id="@android:id/list" android:layout_width="fill_parent"
    android:layout_height="fill_parent" />
</LinearLayout>

затем файл settings.xml

<?xml version="1.0" encoding="utf-8"?>
<PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android"
    android:background="@color/bto_light_green">

<EditTextPreference android:title="Your BTO UserName"
    android:key="username" android:summary="Please provide your username">          </EditTextPreference>
<EditTextPreference android:title="Your BTO Password"
    android:password="true" android:key="password" android:summary="Please provide your password (case sensitive)"></EditTextPreference>
<ListPreference android:title="Species order"
    android:summary="This preference selects the species order for some viewing sightings activities"
    android:key="speciesorder" android:defaultValue="date_order" android:entries="@array/listArray"
    android:entryValues="@array/listValues"></ListPreference>
  </PreferenceScreen>

Таким образом, у меня есть общий заголовок, который я использую на других страницах.

person iaindownie    schedule 19.01.2012
comment
возможно ли это, когда я использую PreferenceFragment? - person Michal; 24.01.2016