Activity によってホストされる PreferenceFragment 内で Snackbar onSharedPreferenceChange() を使用したいと考えています。
プリファレンス.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>
スナックバーを表示するための私の機能は次のとおりです。
public void hideKeyWithError(final String error) {
new Handler().postDelayed(new Runnable() {
@Override
public void run() {
AppUtils.hide_keyboard(getActivity());
Snackbar.make(view,error,Snackbar.LENGTH_LONG).show();
}
}, (300));
}
スナックバーに「ビュー」として何を渡して表示すればよいかわかりません。
PS : PreferenceScreen を Snackbar に渡そうとしましたが、うまくいきませんでした。前もって感謝します。