博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Android PreferenceActivity添加Button、Textview控件
阅读量:7296 次
发布时间:2019-06-30

本文共 1853 字,大约阅读时间需要 6 分钟。

因为PreferenceActivity加载的layout是以PreferenceScreen为底的,所以没办法在layout里面直接添加TextView之类的控件。

此时可以把PreferenceScreen当做一个listview,放在另一个layout中:

1. PreferenceScreen的layout,可以在其中添加一些类似CheckboxPreference

preference_screen_layout.xml
 

2. 新加的layout,listview的ID用android内置的

add_textview_layout.xml

3. PreferenceActivity中使用两个layout:

@Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        addPreferencesFromResource(R.layout.preference_screen_layout);        setContentView(R.layout.add_textview_layout);        pScreen =  getPreferenceScreen();        mTextView = (TextView) findViewById(R.id.service_status_textView);        mContext = this.getApplicationContext();    }

pScreen可以在后面来管理activity中的preference,mTextView可以用来更新text。

4. 另外,动态添加的CheckboxPreference需要update才能设置checked/unchecked。

private void addCheckboxPreference() {        CheckBoxPreference checkPreference = new CheckBoxPreference(mContext);        otherServicePreference.setTitle(title);        otherServicePreference.setIcon(icon);        otherServicePreference.setKey(mKey);        otherServicePreference.setPersistent(true);        otherServicePreference.setDefaultValue(false);        pScreen.addPreference(checkPreference);        updatePreferenceStatus();}
private void updatePreferenceStatus() {        PreferenceScreen screen = getPreferenceScreen();        final int preferenceCount = screen.getPreferenceCount();        Log.i(TAG,"preferenceCount = "+preferenceCount);        for (int i = 0; i < preferenceCount; i++) {            Preference preference = screen.getPreference(i);            mServicePreference = (CheckBoxPreference) findPreference(preference.getKey());            mServicePreference.setChecked(true);        }    }

 

转载于:https://www.cnblogs.com/kunkka/p/10062135.html

你可能感兴趣的文章
log代替system.out.println输出
查看>>
对象和数组的遍历方法
查看>>
Jmeter之root ca certificate 问题
查看>>
使用for--each遍历集合
查看>>
MySQL双主+keeplived安装部署说明
查看>>
基于HWND的Win32 UI自动化
查看>>
WebService 入门程序(一)
查看>>
深入计算机系统 练习题2.44 补码运算
查看>>
python 在linux下读取 .xlsx
查看>>
Java 学习 面向对象学习
查看>>
创建一个git仓库
查看>>
理解爬虫原理
查看>>
Linux 多线程
查看>>
iOS“.NET研究”平台应用开发的敏捷设计流程
查看>>
sqlite数据库中自增key的设定,autoincrement 和 rowid
查看>>
【推荐】10款优秀的jQuery图片插件
查看>>
黑帽大会:SCADA系统安全就像一颗“定时炸弹”
查看>>
20165303第九周学习总结
查看>>
sql存储过程中的整形变量和字符串变量
查看>>
WebService 调用三种方法
查看>>