国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

Preference 使用詳解

laznrbfe / 2593人閱讀

摘要:保存路徑如下包名包名使用方法一般在文件夾中創建文件來對進行布局,布局文件中通常使用容器,包含多個控件,可以設置分類標題。在之前需要繼承此方法不是太推薦使用,已被啟用,之后更高版本,則需要繼承,使用控制布局,然后實現不同控件的處理事件。

極力推薦文章:歡迎收藏
Android 干貨分享

閱讀五分鐘,每日十點,和您一起終身學習,這里是程序員Android

本篇文章主要介紹 Android 開發中的部分知識點,通過閱讀本篇文章,您將收獲以下內容:

Perference 簡介

Perference 使用方法

使用XML定義Preference

使用Fragment 定義Preference

實現效果

PreferenceAndroid 中重要的控件之一,比如 Settings 模塊大部分都是通過Preference 實現的,本章將研究preference 使用方法

1.Preference 簡介 Preference 繼承關系
java.lang.Object
 ???? android.preference.Preference 

Preference 常用于APP 設置模塊,比如 Android 系統中的Settings 模塊,它可以默認把我們的數據保存在SharePreference中。

鍵值對(key-values) 獲取方法同 SharePreference

        SharedPreferences    mSp = PreferenceManager.getDefaultSharedPreferences(this);
        String favPhone = mSp.getString(PREF_LISTPHONE, "MI");

Preference 數據保存

Preference通過key-values 鍵值對的形式保存。
保存路徑如下:
/data/data/包名/shared_prefs/包名_preferences.xml

2. Perference 使用方法

一般在XML文件夾中創建xml 文件來對Settings進行布局,布局文件中通常使用PreferenceScreen容器,PreferenceScreen 包含多個 Preference 控件,PreferenceCategory 可以設置分類標題。

常用Preference 控件如下:
PreferenceScreen
CheckBoxPreference
EditTextPreference
ListPreference
PreferenceCategory
RingtonePreference.

上面控件等同Layout布局中的ViewPreferenceScreen 等同Layout布局中的ViewGroup。在Android 3.0 之前需要繼承PreferenceActivity(此方法不是太推薦使用,已被啟用),3.0 之后更高版本,則需要繼承Activity,使用Fragment 控制布局,然后實現不同控件的處理事件。

Perference 常用使用方法如下兩種:

使用XML定義Preference

使用Fragment 定義Preference

3. 使用XML定義Preference

此方法有點過時,不太建議使用,但目前還可以用。
其使用方法如下:

XML 文件保存在 res/xml/ 目錄中 例如: preferences.xml

繼承PreferenceActivity onCreate方法中直接調用addPreferencesFromResource(R.xml.preference);添加布局

點擊事件處理setOnPreferenceClickListener ,內容發生改變事件處理 setOnPreferenceChangeListener

Preference使用案例如下:
res /xml /preferences.xml




    

    

    

    

    
        

        
    
    

    
        
            
        
    

Activity 處理方法

public class PreferenceMethods extends PreferenceActivity implements
        OnPreferenceClickListener, OnPreferenceChangeListener {

    public static final String PREF_BLUE = "pref_blue";
    public static final String PREF_LISTPHONE = "pref_fav_phone";
    public static final String PREF_CITY = "fav_city";
    public static final String PREF_RING = "pref_ring";

    private CheckBoxPreference mBlueCheckPreference;
    private ListPreference mFavPhoneListPreference;
    private EditTextPreference mFavCityEdPreference;
    private RingtonePreference mRingtonePreference;
    private SwitchPreference mSwitchPreference;
    private SharedPreferences mSp;
    boolean isCheck;

    @SuppressLint("NewApi")
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        addPreferencesFromResource(R.xml.preference);
        mSp = PreferenceManager.getDefaultSharedPreferences(this);

        isCheck = mSp.getBoolean(PREF_BLUE, true);
        String favPhone = mSp.getString(PREF_LISTPHONE, "MI");

        mBlueCheckPreference = (CheckBoxPreference) findPreference(PREF_BLUE);
        mFavPhoneListPreference = (ListPreference) findPreference(PREF_LISTPHONE);
        mFavCityEdPreference = (EditTextPreference) findPreference(PREF_CITY);
        mRingtonePreference = (RingtonePreference) findPreference(PREF_RING);
        mSwitchPreference = (SwitchPreference) findPreference("sw_perference");
        // mSwitchPreference.setEnabled(false);
        mSwitchPreference.setChecked(true);
        mSwitchPreference.setShouldDisableView(true);

        mFavPhoneListPreference.setSummary("ffffdd");
        mFavPhoneListPreference.setOnPreferenceClickListener(this);
        mFavPhoneListPreference.setOnPreferenceChangeListener(this);
        mFavPhoneListPreference.setValueIndex(3);

        mBlueCheckPreference.setChecked(isCheck);
        mBlueCheckPreference.setOnPreferenceClickListener(this);
        mBlueCheckPreference.setOnPreferenceChangeListener(this);

        String favCity = mSp.getString(PREF_CITY, "成都");
        mFavCityEdPreference.setOnPreferenceClickListener(this);
        mFavCityEdPreference.setOnPreferenceChangeListener(this);
        mFavCityEdPreference.setSummary(favCity);

        String favRingtone = mSp.getString(PREF_RING, "十年");
        mRingtonePreference.setSummary(favRingtone);
        mRingtonePreference.setOnPreferenceChangeListener(this);
        mRingtonePreference.setOnPreferenceClickListener(this);
    }

    @Override
    public boolean onPreferenceClick(Preference preference) {
        return true;
    }

    @Override
    public boolean onPreferenceChange(Preference preference, Object newValue) {

        if (mBlueCheckPreference.equals(preference)) {
            isCheck = !isCheck;
            mBlueCheckPreference.setChecked(isCheck);
        }

        if (mFavPhoneListPreference.equals(preference)) {
            mFavPhoneListPreference.setSummary(newValue.toString());
        }

        if (mFavCityEdPreference.equals(preference)) {
            mFavCityEdPreference.setSummary(newValue.toString());
        }
        if (preference.equals(mRingtonePreference)) {

            mRingtonePreference.setSummary(newValue.toString());
        }
        return true;
    }
}
4. 使用Fragment 定義Preference

此方法比較建議是使用,如需了解Fragment 使用方法,請看Fragment 使用詳解

首先自定Fragment片段

a.自定義 SettingsFragment

public class SettingsFragment extends PreferenceFragment {
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

        // Load the preferences from an XML resource
        addPreferencesFromResource(R.xml.preference);
    }
}

b.preference 實現




    

    

    

    

    
        

        
    
    

    
        
            
        
    

Activity 中調用Fragment

public class SettingPreferenceActivity extends Activity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        // TODO Auto-generated method stub
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_preference);

        getFragmentManager().beginTransaction()
                .replace(R.id.fm_pref, new SettingsFragment()).commit();
    }

}

填充布局




    

5.實現效果如下:

至此,本篇已結束,如有不對的地方,歡迎您的建議與指正。同時期待您的關注,感謝您的閱讀,謝謝!

文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。

轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/75896.html

相關文章

  • Android存儲方式之SharedPreference

    摘要:簡介是平臺上一個輕量級數據存儲方式,用來保存應用的一些常用配置,比如狀態,暫停時,將此的狀態保到中當重載,系統回調方法時,再從中將值取出。提供了常規的等類型數據的保存接口。一般這個文件存儲在下是指定讀寫方式,其值有四種。 簡介 SharedPreferences是Android平臺上一個輕量級數據存儲方式,用來保存應用的一些常用配置,比如Activity狀態,Activity暫停時,...

    Keven 評論0 收藏0

發表評論

0條評論

最新活動
閱讀需要支付1元查看
<