生活随笔
收集整理的這篇文章主要介紹了
AndroidStudio之自定义PreferenceScreen
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
Preference的常用xml屬性
1.首先了解一下常用的xml屬性
- 通過上圖可知,使用android:layout屬性可以自定義控件的UI樣式
添加自定義控件
<Preferenceandroid:title="Preference"android:key="key_pre"android:icon="@mipmap/ic_launcher"android:layout="@layout/preference_layout"/>
常用接聽接口
一、Preference.OnPreferenceChangeListener 該監聽器的一個重要方法如下:
boolean onPreferenceChange(Preference preference,Object objValue)
說明: 當Preference的元素值發送改變時,觸發該事件。
返回值:true 代表將新值寫入sharedPreference文件中。
false 則不將新值寫入sharedPreference文件
二、Preference.OnPreferenceClickListener 該監聽器的一個重要方法如下:
public booleanonPreferenceClick(Preference preference)
說明:當點擊控件時觸發發生,可以做相應操作。
觸發規則:
先調用onPreferenceClick()方法,如果該方法返回true,則不再調用onPreferenceTreeClick方法 ;
如果onPreferenceClick方法返回false,則繼續調用onPreferenceTreeClick方法。
onPreferenceChange的方法獨立與其他兩種方法的運行。也就是說,它總是會運行。
自定義監聽
主要實現依賴于上面介紹的兩個接口
繼承PreferenceActivity實現具體業務類,重寫相關生命周期方法
public class MainActivity extends PreferenceActivity implementsPreference.OnPreferenceClickListener{private PreferenceScreen hd_imSelect;private ImageButton header_pic1;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);header_pic1 = findViewById(R.id.pic_1);addPreferencesFromResource(R.xml.preferences);hd_imSelect = (PreferenceScreen) findPreference("header_select");hd_imSelect.setOnPreferenceClickListener(this);}....}
重寫onPreferenceClick()方法
@Overridepublic boolean onPreferenceClick(Preference preference) {// TODO Auto-generated method stubLog.i(TAG, "onPreferenceClick----->"+String.valueOf(preference.getKey()));// 對控件進行操作operatePreference(preference);return false;//這里return false}
調用自定義的方法(這里我展示的是AlertDialog)
private void operatePreference(Preference preference) {if (preference == hd_imSelect) {AlertDialog.Builder builder = new AlertDialog.Builder(this);LayoutInflater inflater = getLayoutInflater();builder.setView(inflater.inflate(R.layout.alert_items, null)).setPositiveButton("確定", new DialogInterface.OnClickListener() {@Overridepublic void onClick(DialogInterface dialog, int id) {dialog.dismiss();}});builder.create();builder.show();}}
效果如下
總結
以上是生活随笔為你收集整理的AndroidStudio之自定义PreferenceScreen的全部內容,希望文章能夠幫你解決所遇到的問題。
如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。