我想为Android应用程序创建一个搜索栏,允许用户选择介于-5和5之间的值(映射到"非常不同意"和"非常同意").如何使用离散值创建搜索条?或者是否有一个更好的UI小部件,我可以使用它?
谢谢.
我一直在看有关添加自己的搜索栏偏好的教程,但它不在我的实际prefs.xml中.有没有办法在我的主要prefs屏幕中有一个或我必须将它分开.
我在GitHub上为我的问题准备了一个简单的测试项目。
在我的项目中,有一个自定义的内联 SeekBarPreference,大多数情况下都可以正常工作(在拖动seekbar时,其摘要会更新,并保存整数值):

但是有一个问题:
在应用程序的第一次运行中(尝试再次看到该错误时,您可能需要卸载我的应用程序)的进度SeekBar未设置(但设置了摘要):

我的问题是:如何在我的代码中解决此问题?
我曾尝试在不同的地方加入mSeekBar.setProgress(mProgress)SeekBarPreference.java,但就是无法找到该代码的正确位置。
以下是我的源代码摘录(以防Stackoverflow超过GitHub)-
PreferenceManager.setDefaultValues(this, R.xml.preferences, false);
getFragmentManager().beginTransaction()
.addToBackStack(null)
.replace(R.id.root, new PrefFragment(), "prefs")
.commit();
Run Code Online (Sandbox Code Playgroud)
@Override
public void onResume() {
super.onResume();
SharedPreferences prefs = getPreferenceManager().getSharedPreferences();
// set the summaries from saved values
onSharedPreferenceChanged(prefs, SEEK_1);
onSharedPreferenceChanged(prefs, SEEK_2);
prefs.registerOnSharedPreferenceChangeListener(this);
}
@Override
public void onSharedPreferenceChanged(SharedPreferences prefs, String key) {
if (SEEK_1.equals(key)) {
int i1 = prefs.getInt(key, DEFAULT_1);
mSeek1.setSummary("$ " + i1);
} else if (SEEK_2.equals(key)) { …Run Code Online (Sandbox Code Playgroud) android seekbar android-preferences seekbarpreference android-seekbar