SettingsActivity 自动生成:纯原生的美!

先看效果

在这里插入图片描述

开发环境

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

具体操作

利用android stutio 自动生成SettingsActivity

在这里插入图片描述
在这里插入图片描述
生成后的activity

说说机制

自动生成的SettingsActivity ,代码简洁,逻辑清晰,简明扼要…其实就一个词:代码简洁。
它不需要普通的activity那样,繁琐的去配置每个控件的标签,字体,间距等等样式
它也不需要在代码里面填写繁琐的逻辑,如何在SharedPreferences中保存这个设置信息
它只需要配置xml,内容有:每行的标题,内容,默认值
保存位置:包名_preferences.xml

标签对照

在这里插入图片描述

常用标签属性

在这里插入图片描述

  1. 文本输入类型
    app:key= 保存SharedPreferences中的KEY
    app:title= 在手机上显示的标题
    app:useSimpleSummaryProvider= true/false 是否显示值内容
<EditTextPreference
	app:key="SP_KEY_USERNAME"
	app:title="@string/app_user_name"
	app:useSimpleSummaryProvider="true" />

在这里插入图片描述

  1. 单选
    app:entries= 弹出单选的内容
    app:entryValues= 单选内容对应值,保存SharedPreferences中
    app:key= 保存SharedPreferences中的KEY
    app:useSimpleSummaryProvider= true/false 是否显示值内容
<ListPreference
    app:entries="@array/module_entries"
    app:entryValues="@array/module_values"
    app:key="SP_KEY_MODULE"
    app:title="@string/app_module"
    app:useSimpleSummaryProvider="true" />

arrays.xml

<resources>
    <!-- Reply Preference -->
    <string-array name="module_entries">
        <item>Boss3</item>
        <item>Boss2</item>
        <item>Boss1</item>
    </string-array>

    <string-array name="module_values">
        <item>Boss3</item>
        <item>Boss2</item>
        <item>Boss1</item>
    </string-array>
</resources>

在这里插入图片描述

监听操作

通常这样是不够的,有些数据不仅仅保存在xml中,还需要其他的操作,比如保存数据,网络请求等,那么就需要监听操作,进行相关逻辑判断处理。

具体代码:

  1. 找到控件
findPreference("SP_KEY_MODULE");
  1. 添加监听
findPreference("SP_KEY_MODULE").setOnPreferenceClickListener(this);//点击监听
findPreference("SP_KEY_MODULE").setOnPreferenceChangeListener(this);//保存监听
  1. 监听处理
/**
 * 保存监听处理
 * @param preference
 * @param newValue
 * @return false:不保存操作	true:保存操作
 */
@Override
public boolean onPreferenceChange(Preference preference, Object newValue) {
    if (newValue == null || TextUtils.isEmpty(newValue.toString())) {
        MyToast.show("输入有误,请重新输入");
        return false;
    }
    return true;
}

/**
 * 点击监听处理 Called when a preference has been clicked.
 * @param preference The preference that was clicked
 * @return {@code true} if the click was handled
 */
@Override
public boolean onPreferenceClick(Preference preference) {
    return false;
}
  • 3
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值