如何编程修改的CheckBox preference视图 [英] how to programatically modify a CheckBoxPreference view
本文介绍了如何编程修改的CheckBox preference视图的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我怎样才能更改CheckBox preference在运行时的看法?
How can I change the view of a CheckBoxPreference at runtime?
具体来说,我想这取决于用户是否已选中该复选框或不更改CheckBox preference总结。
Specifically, I'd like to change a CheckBoxPreference summary depending on whether the user has checked the box or not.
如果它是一个普通视图,我可以这样做:
If it were a normal view, I could do something like:
view1 = (TextView)findViewById(R.id.idView1);
view1.setText("some text");
但是,一个CheckBox preference没有身份证,所以我不知道怎么去处理给它。
But a CheckBoxPreference has no id, so I don't know how to get a "handle" to it.
推荐答案
我有一个答案,以我自己的问题。关键是要使用找到preference
在 preferenceActivity
,如下:
I have an answer to my own question. The key is to use findPreference
in a PreferenceActivity
, as follows:
public class MyPreferenceActivity extends PreferenceActivity{
private SharedPreferences preferences;
private SharedPreferences.OnSharedPreferenceChangeListener prefListener;
private CheckBoxPreference pref;
@Override
public void onCreate(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
addPreferencesFromResource(R.xml.preferences);
pref = (CheckBoxPreference) findPreference(res.getString(R.string.keyAccount));
pref.setSummary("something");
//-- preference change listener
prefListener = new SharedPreferences.OnSharedPreferenceChangeListener(){
public void onSharedPreferenceChanged(SharedPreferences prefs, String key){
if (key.equals(somekey)){
pref.setSummary("something new");
}
}
};
preferences.registerOnSharedPreferenceChangeListener(prefListener);
}
这是测试和工程。
这篇关于如何编程修改的CheckBox preference视图的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文