Android preference_安卓fragment切换

Android preference_安卓fragment切换PreferenceFragmentAndroid应用程序通常要提供首选项,以允许用户定制应用程序。例如,可以允许用户保存那些用于访问Web资源的登录凭据,等等。在Android中,可以使用PreferenceActivity基类为用户显示一个用于编辑首选项的活动。在Android3.0和更高版本中,可以使用PreferenceFragment类实现相同的功能。//XML//新建(res…

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺

PreferenceFragment

Android应用程序通常要提供首选项,以允许用户定制应用程序。

例如,可以允许用户保存那些用于访问Web资源的登录凭据, 等等。

在Android中,可以使用PreferenceActivity基类为用户显示一个用于编辑首选项的活动。

在Android 3.0和更高版本中,可以使用PreferenceFragment类实现相同的功能。// XML

// 新建 (res/xml/preferences.xml)

android:key=”child_checkbox_preference”

android:summary=”这是一个可见的子类”

android:title=”子类复选框首选项”

android:summaryOn=”已开启”

android:summaryOff=”已关闭”

android:onClick=”onClick”/>

// Activit

public class MainActivity extends Activity {

@Override

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.activity_main);

// 替换 Fragment

getFragmentManager().beginTransaction()

.replace(R.id.xxx, new MyPreference())

.commit();

}

// PreferenceFragment

class MyPreference extends PreferenceFragment {

// 监听 Preference Click

@Override

public boolean onPreferenceTreeClick(PreferenceScreen preferenceScreen, Preference preference) {

Log.i(“INFO”, preference.getKey());

// 也可以通过 KEY 获取

// findPreference(“child_checkbox_preference”)

if (preference.getKey().equals(“child_checkbox_preference”)) {

CheckBoxPreference child_checkbox_preference = (CheckBoxPreference) preference;

Toast.makeText(MainActivity.this, String.valueOf(child_checkbox_preference.isChecked()), Toast.LENGTH_SHORT).show();

}

return super.onPreferenceTreeClick(preferenceScreen, preference);

}

@Override

public void onCreate(Bundle savedInstanceState) {

// TODO Auto-generated method stub

super.onCreate(savedInstanceState);

// 添加 Preferences XML

addPreferencesFromResource(R.xml.preferences);

// 选项监听 …

// findPreference(“child_checkbox_preference”).setOnPreferenceClickListener(…);

// 选项监听 当 Preference 的值发生改变时触发该事件,true则以新值更新控件的状态,false 则 不保存

findPreference(“child_checkbox_preference”).setOnPreferenceChangeListener(new Preference.OnPreferenceChangeListener() {

@Override

public boolean onPreferenceChange(Preference preference, Object newValue) {

// 返回 false 修改不会生效

return false;

}

});

/*

// 获取 Preferences Manager

PreferenceManager manager = getPreferenceManager();

// 获取 选项状态

CheckBoxPreference child_checkbox_preference = (CheckBoxPreference) manager.findPreference(“child_checkbox_preference”);

// …

Toast.makeText(MainActivity.this, String.valueOf(child_checkbox_preference.isChecked()), Toast.LENGTH_SHORT).show();

*/

}

public void onClick() {

Toast.makeText(MainActivity.this, “成功”, Toast.LENGTH_SHORT).show();

}

}

}

xmlns:android=”http://schemas.android.com/apk/res/android”>

android:title=”显示一排偏好”>

android:key=”checkbox_preference”

android:title=”开关偏好”

android:summary=”这是一个开关按钮” />

android:title=”基于对话框的偏好”>

android:key=”edittext_preference”

android:title=”文本输入偏好”

android:summary=”使用一个文本框对话框”

android:dialogTitle=”输入你的宠物” />

android:key=”list_preference”

android:title=”列表偏好”

android:summary=”使用一个列表对话框”

android:entries=”@array/entries_list_preference”

android:entryValues=”@array/entryvalues_list_preference”

android:dialogTitle=”选择一个” />

android:title=”启动偏好”>

android:key=”screen_preference”

android:title=”屏幕”

android:summary=”显示另一个偏好屏幕”>

android:key=”next_screen_checkbox_preference”

android:title=”开关偏好”

android:summary=”另一个屏幕上的偏好” />

android:title=”意图偏好”

android:summary=”通过意图启动一个Activity”>

android:data=”http://www.android.com” />

android:title=”偏好属性”>

android:key=”parent_checkbox_preference”

android:title=”父开关”

android:summary=”这是一个父开关” />

android:key=”child_checkbox_preference”

android:dependency=”parent_checkbox_preference”

android:layout=”?android:attr/preferenceLayoutChild”

android:title=”子开关”

android:summary=”这是一个子开关” />

补充

android:summaryOff=”已关闭”

android:summaryOn=”已开启”

android:title=”无线状态(WIFI)” />

补充 + 动态修改 PreferenceFragment 内容// preferences_evolver_fragment

android:key=”evolver_screen_preference”>

// EvolverPreference

public class EvolverPreference extends PreferenceFragment {

// 标签

private static final String TAG = “EvolverPreference”;

// PreferenceScreen

PreferenceScreen evolver_screen_preference = null;

// Handler 消息处理

private Handler handler = new Handler() {

@Override

public void handleMessage(Message msg) {

switch (msg.what) {

case 0x1001:

JSONObject json = (JSONObject) msg.obj;

try {

JSONObject params = json.getJSONObject(“params”);

evolver_screen_preference.removeAll();

for (Iterator iter = params.keys(); iter.hasNext(); ) {

String key = (String) iter.next();

JSONObject software = params.getJSONObject(key);

Preference preference = new Preference(getActivity());

preference.setTitle(software.getString(“name”));

preference.setSummary(“版本:” + software.getString(“version”) + ” – ” + software.getString(“date”));

evolver_screen_preference.addItemFromInflater(preference);

}

} catch (JSONException e) {

e.printStackTrace();

}

}

}

};

// 获取 Handler

public Handler getHandler() {

return handler;

}

@Override

public void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

addPreferencesFromResource(R.xml.preferences_evolver_fragment);

evolver_screen_preference = (PreferenceScreen) getPreferenceManager().findPreference(“evolver_screen_preference”);

}

}

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/196342.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • javascript正则表达式验证邮箱_html5邮箱正则表达式

    javascript正则表达式验证邮箱_html5邮箱正则表达式<!DOCTYPEhtml><htmllang="zh-CN"><head> <metacharset="UTF-8"> <title>Document</title></head><body> <inputt

    2022年9月24日
    2
  • mybatiscodehelperpro2.9.4激活码【2021.8最新】

    (mybatiscodehelperpro2.9.4激活码)好多小伙伴总是说激活码老是失效,太麻烦,关注/收藏全栈君太难教程,2021永久激活的方法等着你。IntelliJ2021最新激活注册码,破解教程可免费永久激活,亲测有效,下面是详细链接哦~https://javaforall.net/100143.htmlS32PGH0SQB-eyJsaWNlbnNlSWQi…

    2022年3月26日
    111
  • linux文本编辑的几种退出方法「建议收藏」

    linux文本编辑的几种退出方法「建议收藏」1.使用Vim的时候便捷方式:(1)ctrl+z退出,fg进入(2)正常模式下输入“:sh”进入linux环境,离开Linuxe环境进入Vim使用exit参考:https://blog.csdn.net/A632189007/article/details/78263459一般方式:输入“:wq”然后回车就退出了,表示先保存再退出按“:q”退出:在任何情况先按键盘上面…

    2022年7月26日
    15
  • Zabbix通过进程名监控进程状态配置详解

    Zabbix通过进程名监控进程状态配置详解Zabbix通过进程名监控进程状态配置详解有时候我们只能通过进程名监控一个进程是否停掉了,因为有的进程并没有对外提供端口号,以下记录了下详细步骤,通过这个示例会学到很多zabbix核心配置相关的东西。总的来说,配置一个完整的监控流程如下:1.创建监控项,即配置要监控的指标,如内存的使用率,CPU的使用率,进程的运行状况等,配了监控项后就会定时收集机器的配置信息,然后等待zabbix…

    2022年5月27日
    56
  • ETH显卡矿机_eth矿机组装

    ETH显卡矿机_eth矿机组装显卡矿机搭建选择合适显卡选择硬件选择挖矿软件挖矿系统mineros挖矿软件注意:每个币种的软件都不一样挖矿系统和软件也有多种具体对应的官网都会有教程选择合适显卡主流显卡算力对比选择硬件选择挖矿软件前提准备自己的钱包地址选择矿池地址挖矿系统mineros步骤:注册账号刻盘启动挖矿和监控矿机状态挖矿软件NBMiner…

    2022年9月27日
    2
  • 搭建zuul网关_zuul网关的请求和响应

    搭建zuul网关_zuul网关的请求和响应1.概述Zuul是netflix开源的一个APIGateway服务器,本质上是一个webservlet应用(filter过滤器)。是微服务的请求入口,保护微服务的安全;默认集成ribbon,hystrix。Zuul在云平台上提供动态路由【实现请求的分发(负载均衡)】,监控,弹性,安全,鉴权,限流等边缘服务的框架。Zuul相当于是设备和Netflix流应用的Web网站…

    2022年8月15日
    5

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号