2010-11-18 33 views
2

Sahip olduğum bir uygulamaya bazı basit tercihleri ​​uygulamak için çalışıyorum ve bir XML dosyasında tanımlanan görünümü değiştirmek için bir tercihin nasıl kullanılacağını anlamaya çalışıyorum. Aşağıdaki LinearLayout (player_row.xml) ile bir listesi var her satır için kullanılıyor:Tercihler XML düzeninde erişilebilir mi?

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:orientation="horizontal" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent"> 
    <ImageView android:id="@+id/player_icon" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_gravity="center"/> 
    <TextView android:id="@+id/player_name" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:textSize="30sp" 
    android:textColor="#F0F0F0" 
    android:layout_weight="1" 
    android:layout_marginLeft="5dp"/> 
    <TextView android:id="@+id/player_score" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:textSize="30sp" 
    android:textColor="#F0F0F0"/> 
</LinearLayout> 

Şu anda elle özniteliği TEXTSIZE belirterek ediyorum. Kullanıcının "Küçük", "Orta" ve "Büyük" gibi çeşitli seçenekler arasından seçim yapmasını sağlayan bir tercih menüsü oluşturmak istiyorum. Giriş ve yazı tipi boyutları için dizileri ayarlayabileceğimi ve daha sonra player_row.xml dosyasında bunu yapabildiğimi, ancak yapamayacağımı görebildiğimi anladım.

preferences.xml:

<?xml version="1.0" encoding="utf-8"?> 
<PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android" 
    android:key="preference_main"> 
    <ListPreference 
     android:key="fontSizePreference" 
     android:title="Font size" 
     android:entries="@array/fontSizeList" 
     android:entryValues="@array/fontSizeList_Values"/> 
</PreferenceScreen> 

arrays.xml: Bu yapılamaz ise tercihlerini kullanarak bir düzen yapılandırmak için uygun yolu nedir

<?xml version="1.0" encoding="utf-8"?> 
<resources> 
    <string-array name="fontSizeList"> 
    <item>Small</item> 
    <item>Medium</item> 
    <item>Large</item> 
    </string-array> 
    <string-array name="fontSizeList_Values"> 
    <item>22sp</item> 
    <item>26sp</item> 
    <item>30sp</item> 
    </string-array> 
</resources> 

mı? Aramalarım, programatik olarak tercihlere erişme konusunda birden fazla kaynak bulmamı sağladı ancak bunların hiçbiri bir XML dosyasında tanımlanmış bir düzeni yapılandırmanın uygun yolu olarak görünmüyor.

cevap

1

ben aradığınız prosedür olduğunu düşünüyorum:

  1. kullanıcı ayarlarını kaydeder sonra ayarları ekranı & aktivitesini
  2. oluşturma destek bir dosyaya ayarları kaydetmek PreferenceActivity izin (kullanarak getPreferences(MODE_PRIVATE).edit().putString(PREF_FONT_SIZE, yourSetting).commit()
  3. Ana faaliyetinizde # onCreate, setContentView
  4. 'u kullanarak düzeni yükleyin. Tercihlerinizi buradan yükleyin
  5. findViewById aracılığıyla iews ve yazı tipi boyutunu tercihleri ​​yüklendiği gibi ayarla
+0

Bunu yapmak istediğimi düşünüyordum. Tüm bunları düzen dosyası aracılığıyla yapmanın bir yolu olacağını umuyordum. – Thomas

+1

Bu nasıl işe yarayabilir? Başka bir XML eşleme dosyasına ya da en azından layout.xml dosyasından bir referansa gereksinim duyarsınız .. varsayılan değerler, geçersiz türler vs.'den bahsetmemelisiniz. Sanırım şimdi olduğu gibi iyi. ;-) –

+0

Bir anahtar belirttiğinizde, belki de otomatik olarak bir kaynak oluşturup oluşturmayacağından emin olamadım, örneğin @ pref/font_size veya bu satırlardaki bir şey. Her iki şekilde de temel bir şeyi kaçırmadığımdan emin olmak istedim. – Thomas

İlgili konular