我想获取用于在我的PreferenceActivity中显示特定首选项的View实例,因此我可以修改其属性,例如:
public class SettingsActivity extends PreferenceActivity {
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
addPreferencesFromResource(R.xml.preference);
Preference pref = findPreference("key");
pref.getView().setVisibility(View.GONE);
//not necessarily setVisibility, i hope you get my point
}
}
Run Code Online (Sandbox Code Playgroud)
我只找到了这个方法: getView(View convertView,ViewGroup parent).但是对我来说似乎很困惑,如果我想获得我的偏好视图,我需要提供视图和viewGroup作为参数?
有人可以解释如何使用此方法,或指向另一种方法从我的Preference实例获取View.
PS:如果可能的话,我宁愿不扩展Preference类,但如果有必要,我不介意
我想在Activity托管的PreferenceFragment中使用Snackbar onSharedPreferenceChange().
preference.xml
<?xml version="1.0" encoding="utf-8"?>
<PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android"
android:key="ll_main">
<PreferenceCategory android:title="@string/push_notification">
<SwitchPreference android:title="@string/transectional_notification"
android:key="trans_not"
android:defaultValue="true"
android:summary="@string/get_notified_about_any_changes_related_to_your_transections"/>
<SwitchPreference android:title="@string/promotional_notification"
android:key="prom_not"
android:defaultValue="true"
android:summary="@string/get_notified_about_referalls"/>
</PreferenceCategory>
<PreferenceCategory android:title="@string/other_notifications">
<SwitchPreference android:title="@string/email_notifications"
android:defaultValue="true"
android:key="email_not" />
<SwitchPreference android:title="@string/sms_notifications"
android:defaultValue="true"
android:key="sms_not"/>
</PreferenceCategory>
<PreferenceCategory android:title="@string/recommendation_setting">
<com.til.recharger.widgets.PhoneEditTextPreference
android:title="@string/mobile_no"
android:inputType="number"
android:summary="8587035342"
android:key="mob_no_edit"/>
<ListPreference android:title="@string/operator"
android:summary="Airtel"
android:key="operator_list"/>
<ListPreference android:title="@string/circle"
android:summary="New Delhi"
android:key="circle_list"/>
<ListPreference
android:title="Plan type"
android:entries="@array/listentries"
android:entryValues="@array/listentries"
android:summary="Postpaid"
android:defaultValue="Prepaid"
android:key="plan_key"/>
</PreferenceCategory>
<PreferenceCategory android:title="@string/plan_info">
<com.til.recharger.widgets.NumberPickerPreference
android:title="@string/bill_cycle"
android:summary="2"
android:persistent="true"
android:key="bill_cycle_edit"/>
<com.til.recharger.widgets.CustomEditTextPreference
android:title="@string/monthly_data_limit"
android:summary="%s"
android:inputType="number"
android:key="monthly_limit_edit"/>
<ListPreference
android:title="@string/preffered_network_type"
android:entries="@array/mobiledataoptions"
android:entryValues="@array/mobiledatavalues"
android:summary="3G"
android:defaultValue="3G"
android:key="pref_data_list"/>
</PreferenceCategory>
</PreferenceScreen> …Run Code Online (Sandbox Code Playgroud)