2012-01-19 20 views
10

Estoy tratando de crear una PreferenceScreen pero quiero el diseño de la actividad como los proyectos completos.Android: ¿Cómo se puede hacer PreferenceScreen personalizado?

¿Cómo se puede crear un diseño PreferenceScreen personalizado?

+0

Disculpe, ¿puede ampliar su pregunta? ¿O tal vez hacerlo más limpio? Creo que el suyo es un problema de diseño/gráfico – StErMi

+0

ya es, pero quiero preguntarle si es factible. – Basbous

Respuesta

2

Creo que esto es lo que está buscando.

PreferenceScreen screen = createPreferenceHierarchy(); 

..
this.setContentView(rootView); => Creo que se puede establecer de diseño xml también.

setPreferenceScreen(screen); 
+0

el enlace está roto :( – philipp

12

Sí, es factible. Disculpas por la disposición, mi pegar nunca parece mantener el formato correcto, pero funciona de contenido ...

Preferences.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); 
     } 
    }); 

    } 
    } 

luego un preferencias holder.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> 

a continuación, Preferencias .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> 

De esta forma tengo un encabezado común que utilizo en otras páginas.

+0

¿es esto posible cuando estoy usando preferenceFragment? – Michal

Cuestiones relacionadas