2013-06-21 14 views
8

Mam preferencje dla Androida: układ gft. Ustawiłem układ w Androidzie: właściwość układu preferencji w pliku xml.Zobacz preferencje z układem niestandardowym

Teraz muszę wykonać inicjalizację przycisku w układzie (to przycisk +1). Potrzebuję uzyskać ten przycisk w metodzie onCreate (jest to przycisk +1), ale kiedy używam findViewById(button_id), zwraca on wartość null.

Czy istnieje sposób, aby uzyskać widok tej preferencji?

UPDATE: Wygląda na to, że preferencja nie jest tworzona po dodaniu xml preferencji, więc otrzymuję wartość null. Gdzie mogę wywołać findViewById, więc przycisk jest już utworzony?

Dzięki.

Preferencje xml:

<Preference android:title="Rate this app" 
    android:key="rate" 
    android:widgetLayout="@layout/plusone_pref"/> 

</PreferenceScreen> 

Korzystny układ xml:

<?xml version="1.0" encoding="utf-8"?> 
<com.google.android.gms.plus.PlusOneButton xmlns:android="http://schemas.android.com/apk/res/android" 
xmlns:plus="http://schemas.android.com/apk/lib/com.google.android.gms.plus" 
android:id="@+id/plus_one_button" 
android:layout_width="wrap_content" 
android:layout_height="wrap_content" 
android:layout_gravity="center_vertical" 
android:focusable="false" 
plus:size="standard" /> 

Odpowiedz

9

Musisz utworzyć klasę, która rozciąga Preference, a następnie zastąpić onBindView i będziesz miał dostęp do widok.

public class MyPreference extends Preference { 

    ... 

    @Override 
    protected void onBindView(View view) { 
     super.onBindView(view); 
     View myView = (View) view.findViewById(R.id.my_id); 
     // ... do stuff 
    } 

} 

Prawdopodobnie będziesz musiał zastąpić jeszcze kilka metod, przeczytaj o niestandardowych preferencji w PreferenceActivity - http://developer.android.com/guide/topics/ui/settings.html

Powiązane problemy