2012-01-19 17 views
10

Bir PreferenceScreen oluşturmaya çalışıyorum ancak tüm projeler gibi Etkinlik tasarımını istiyorum.Android: Özel PreferenceScreen'i nasıl yapabilirim?

Özel PreferenceScreen tasarımı nasıl oluşturulur?

+0

Üzgünüz, sorunuzu genişletir misiniz? Ya da belki daha temiz hale getirebilir misin? Bence seninki bir tasarım/grafik problemi – StErMi

+0

ya da onun yapısını sormak istiyorum. – Basbous

cevap

2

Bunun için aradığınız şey olduğunu düşünüyorum.

PreferenceScreen screen = createPreferenceHierarchy(); 

..
this.setContentView(rootView); => i de xml düzenden ayarlayabilirsiniz düşünüyorum.

setPreferenceScreen(screen); 
+0

bağlantı bozuk :( – philipp

12

Evet, bu yapılabilir.

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

    } 
    } 

sonra tercihler

sonra
<?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> 

tercihleri ​​holder.xml ...

Preferences.java düzeni için kusura bakmayın benim yapıştırma asla doğru biçimlendirmeyi tutmak gibi görünüyor, ama içerik işleri .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> 

Bu şekilde, diğer sayfalarda kullandığım ortak bir üstbilgim var.

+0

bu preferenceFragment kullanırken mümkün mü? – Michal