使用自定义布局获取首选项的视图

我有一个偏好android:布局gft。 我已经在xml文件的首选项的android:layout属性中设置了布局。

现在我需要在布局中做一个button的初始化(这是一个+1button)。 我需要在onCreate方法(它是一个+1button),但是当我使用findViewById(button_id) ,它返回null。

有什么方法可以得到这个偏好的观点?

更新:似乎喜好是不添加偏好xml后创build的,所以我得到空。 在哪里我可以调用findViewById所以button已经创build?

谢谢。

首选项xml:

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

首选布局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" /> 

Solutions Collecting From Web of "使用自定义布局获取首选项的视图"

您需要创build一个扩展Preference的类,然后覆盖onBindView ,您将有权访问该视图。

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

您可能必须重写一些更多的方法,阅读PreferenceActivity中的自定义首选项 – http://developer.android.com/guide/topics/ui/settings.html