这必须经常出现.
当用户在Android应用中编辑首选项时,我希望他们能够在Preference摘要中查看首选项的当前设置值.
示例:如果我有"丢弃旧邮件"的"首选项"设置,该设置指定需要清除邮件的天数.在PreferenceActivity我想让用户看到:
"丢弃旧邮件" < - 标题
" x天后清理消息" < - summary其中x是当前的Preference值
额外的功劳:使这个可重用,所以我可以轻松地将它应用到我的所有首选项,无论其类型如何(这样它可以使用EditTextPreference,ListPreference等,只需最少的编码).
我有CheckBoxPreference和另外两个:一个是Edit Test Pref.另一个是ListBox Pref.如何启用列表框pref并禁用编辑文本pref.何时打开CheckBoxPreference?
我知道我可以这样做:
Preference pref = findPreference(getString(R.string.pref_vibrate_on_key));
pref.setOnPreferenceChangeListener(new OnPreferenceChangeListener() {
@Override
public boolean onPreferenceChange(Preference preference,
Object newValue) {
LogUtil.d("Working!");
return true;
}
});
Run Code Online (Sandbox Code Playgroud)
但我想为每个偏好添加一个Listener.我试过做:
SharedPreferences sp = PreferenceManager.getDefaultSharedPreferences(context);
sp.registerOnSharedPreferenceChangeListener(new OnSharedPreferenceChangeListener() {
@Override
public void onSharedPreferenceChanged(
SharedPreferences sharedPreferences, String key) {
LogUtil.d("working!");
}
});
Run Code Online (Sandbox Code Playgroud)
但它不起作用.这可能吗?如果是这样,我做错了什么?
我的应用程序从带有音乐的初始屏幕开始,我使用了sharedpreference来停止音乐,因此下次您打开仍没有音乐的应用程序初始屏幕时。
即时通讯试图获得具有三个独立的不同复选框功能的首选项屏幕,并且如果您选中一个复选框,则无法选中另外两个,如下所示:
第一个复选框: 启动带有启动屏幕和音乐的应用程序(通过以下代码实现),
第二个复选框:启动时没有启动屏幕且没有音乐的应用(通过以下代码实现),
第三个复选框: 启动没有启动屏幕和音乐的应用程序(未实现)。
任何帮助将不胜感激,谢谢
代码 :
飞溅:
public class Splash extends Activity{
MediaPlayer ourSong;
@Override
protected void onCreate(Bundle savedInstanceState) {
this.requestWindowFeature(Window.FEATURE_NO_TITLE);
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
setContentView(R.layout.splash);
ourSong = MediaPlayer.create(Splash.this, R.raw.splashsound);
SharedPreferences getPrefs = PreferenceManager.getDefaultSharedPreferences
(getBaseContext());
boolean music = getPrefs.getBoolean("checkbox", true);
if (music == true)
ourSong.start();
Thread timer = new Thread(){
public void run(){
try{
sleep(1000); }
catch (InterruptedException e){
e.printStackTrace(); }
finally{
Intent openMainActivity = new Intent("com.test.demo.MENU");
startActivity(openMainActivity); }}
};
timer.start(); …Run Code Online (Sandbox Code Playgroud)