请告诉我如何在Android中的首选项中保存SeekBar进度,以及如何在用户再次打开时在seekbar上显示保存的值。在首选项中保存seekbar进度
2
A
回答
0
保存进度
SharedPreference mSharedPrefs = PreferenceManager.getDefaultSharedPreferences(context);
Editor mEditor = mSharedPrefs.edit();
int mProgress = mSeekBar.getProgress();
mEditor.putInt("mMySeekBarProgress", mProgress).commit();
,比你能做到这一点得到它:
int mProgress = mSharedPrefs.getInt("mMySeekBarProgress", 0);
mSeekBar.setProgress(mProgress);
0
初始化SharedPreferences对象:
SharedPreferences pre = getSharedPreferences("pre_name", Context.MODE_PRIVATE);
的喜好添加值:
pre.edit().putInt("KEY_PROGRESS_VALUE", 30).commit();
负荷喜好值:
int progress = pre.getInt("KEY_PROGRESS_VALUE",0); // 0: default value
然后设置进度条的进度:
progrssBar.setProgress(progress);
2
试试我与滑块的偏好at GitHub简单但完整的例子:
SeekBarPreference.java(保存SeekBar编RESS为整数值):
public class SeekBarPreference extends Preference implements OnSeekBarChangeListener {
private SeekBar mSeekBar;
private int mProgress;
public SeekBarPreference(Context context) {
this(context, null, 0);
}
public SeekBarPreference(Context context, AttributeSet attrs) {
this(context, attrs, 0);
}
public SeekBarPreference(Context context, AttributeSet attrs, int defStyle) {
super(context, attrs, defStyle);
setLayoutResource(R.layout.preference_seekbar);
}
@Override
protected void onBindView(View view) {
super.onBindView(view);
mSeekBar = (SeekBar) view.findViewById(R.id.seekbar);
mSeekBar.setProgress(mProgress);
mSeekBar.setOnSeekBarChangeListener(this);
}
@Override
public void onProgressChanged(SeekBar seekBar, int progress, boolean fromUser) {
if (!fromUser)
return;
setValue(progress);
}
@Override
public void onStartTrackingTouch(SeekBar seekBar) {
// not used
}
@Override
public void onStopTrackingTouch(SeekBar seekBar) {
// not used
}
@Override
protected void onSetInitialValue(boolean restoreValue, Object defaultValue) {
setValue(restoreValue ? getPersistedInt(mProgress) : (Integer) defaultValue);
}
public void setValue(int value) {
if (shouldPersist()) {
persistInt(value);
}
if (value != mProgress) {
mProgress = value;
notifyChanged();
}
}
@Override
protected Object onGetDefaultValue(TypedArray a, int index) {
return a.getInt(index, 0);
}
}
preference_seekbar.xml(与SeekBar和TextView的布局文件):
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:gravity="center_vertical" >
<SeekBar
android:id="@+id/seekbar"
android:layout_width="0dp"
android:layout_weight="80"
android:layout_height="wrap_content" />
<TextView
android:id="@android:id/summary"
android:layout_width="0dp"
android:layout_weight="20"
android:layout_height="wrap_content" />
</LinearLayout>
相关问题
- 1. Seekbar想要保存进度
- 2. 在首选项中保存Firefox扩展
- 3. 首选项不保存在DialogPreference中
- 4. 保存Android的首选项
- 5. 无法在Sharedpreference首选项中保存当前状态进度栏
- 6. Android SeekBar首选AudioManager?
- 7. Android列表首选项,如何保存个人首选项
- 8. 铃声首选项不保存选择
- 9. 复选框值在android中保存共享首选项?
- 10. 已保存的首选项未获取
- 11. 保存int的共享首选项?
- 12. 保存登录信息(首选项)android
- 13. iPhone滑块保存用户首选项
- 14. 共享首选项保存Textview背景
- 15. 保存和恢复一组首选项
- 16. Libgdx:如何保存首选项?
- 17. 保存意向共享首选项
- 18. 保存excel 2003的打印首选项
- 19. seekbar进度定制
- 20. 动画seekbar进度
- 21. EditText中的文本未保存在共享首选项中
- 22. 如何在iOS中的共享首选项中保存cookie?
- 23. 保存选项菜单共享首选项
- 24. 无法在Eclipse中保存项目首选参数
- 25. 如何在Mac OS中保存应用程序首选项?
- 26. 将自定义数组保存在共享首选项中
- 27. 如何在共享首选项中保存json响应的值?
- 28. 在ios中保存wifi身份验证首选项
- 29. 保存并在首选项中打开TimerTime
- 30. 在共享首选项中保存R ID
使用Sharedprefrence –