2013-06-21 14 views
8

Ich habe eine Präferenz Android: Layout gft. Ich habe das Layout in der Android: Layout-Eigenschaft der Präferenz in der XML-Datei festgelegt.Ansicht der Präferenz mit benutzerdefinierten Layout

Jetzt muss ich eine Initialisierung einer Schaltfläche im Layout (es ist eine + 1-Schaltfläche) tun. Ich muss diese Schaltfläche in der onCreate-Methode abrufen (es ist eine + 1-Schaltfläche), aber wenn ich findViewById(button_id) verwende, gibt es null zurück.

Gibt es eine Möglichkeit, diese Präferenz zu sehen?

UPDATE: Es scheint, dass die Präferenz nicht erstellt wird, nachdem ich die Präferenz XML, so dass ich null. Wo kann ich findViewById aufrufen, so dass die Schaltfläche bereits erstellt wurde?

Danke.

Einstellungen xml:

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

</PreferenceScreen> 

Preference Layout 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" /> 

Antwort

9

Sie müssen eine Klasse erstellen, die Preference erstreckt, dann onBindView außer Kraft setzen und Sie erhalten Zugang zu den haben Aussicht.

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 
    } 

} 

Sie werden wahrscheinlich noch einige Methoden außer Kraft setzen müssen, lesen Sie über benutzerdefinierte Einstellung in PreferenceActivity - http://developer.android.com/guide/topics/ui/settings.html

Verwandte Themen