怎么在preferencefragment显示自定义导航栏

 我来答
匿名用户
2016-01-19
展开全部
关于自定义Preference内置控件及PreferenceFragment笔记,有需要的朋友可以参考下。

我们知道系统Preference提供的控件并不多,只有CheckBoxPreference,ListPreference,EditTextPreference,RingtonePreference等为数不多的控件,有时候并不能满足我们的需求.这时候我们就需要自定义,比如自定义一个SeekBar用来调节音量什么的.这里我就不介绍如何自定义包含SeekBar的Preference,大家可以查看Android自定义SeekBarPreference.

这里需要提及的是,我们自定的这个控件,往往需要和Activity或者Service通信,这时候该怎么操作呢?

我们同样还是以SeekBarPreference为例.我们都知道,当滑动SeekBar的时候,系统会回调onProgressChanged方法.假如我们需要在onProgressChanged中与
Activity/Fragment/Service通信.这时候就需要定义一个接口在其中声明我们需要用到的方法.然后声明一个函数,将接口的引用作为参数提供给Activity/Fragment/

Service调用.

public class VolumeSeekBarPreferences extends DialogPreference implements OnSeekBarChangeListener {
private seekBarCallBack back;

....

@Override
public void onProgressChanged(SeekBar seekBar, int progress,
boolean fromUser) {
// TODO Auto-generated method stub
....
back.setSeekBarVolume(mCurrentValue);
....

}

....

public interface seekBarCallBack{
public void setSeekBarVolume(int volume);
}

public void setSeekbarListener(seekBarCallBack barCallBack){
back = barCallBack;
}
}

然后,在Activity/Fragment/Service中通过实现控件Preference中的传递接口引用的函数.
public class MyPreferenceFragment extends PreferenceFragment implements
OnPreferenceClickListener, OnPreferenceChangeListener {

private VolumeSeekBarPreferences seekBarPreferences;

.....

@Override
public void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
addPreferencesFromResource(R.layout.preference_setting);
//VolumeSeekBarPreferences为我们自定义的Preference控件
seekBarPreferences = (VolumeSeekBarPreferences) findPreference("seekBarPreference");
seekBarPreferences.setSeekbarListener(new seekBarCallBack() {

@Override
public void setSeekBarVolume(int volume) {
// TODO Auto-generated method stub
//在这里实现通信
}
});

}

.....

}
微测检测5.10
2023-05-10 广告
您好!建议咨 深圳市微测检测有限公司,已建立起十余个专业实验室,企业通过微测检测就可以获得一站式的测试与认 证解决方案;(EMC、RF、MFi、BQB、QI、USB、安全、锂电池、快充、汽车电子EMC、汽车手机互 联、语音通话质量),认证遇... 点击进入详情页
本回答由微测检测5.10提供
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式