将SeekBarPreference的当前值显示到ScreenPreference中的好方法是什么?我试着插入文本视图,但是应用程序崩溃了。有什么建议吗?
preferences.xml
<PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android">
<SeekBarPreference
android:id="@+id/seekbar_pref"
android:key="seekbar_x"
android:title="Value"
android:defaultValue="1"
android:max="60"/>
</PreferenceScreen>Preferences.java公共类首选项扩展PreferenceActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
getFragmentManager().beginTransaction().replace(android.R.id.content, new MyPreferenceFragment()).commit();
}
public static class MyPreferenceFragment extends PreferenceFragment
{
@Override
public void onCreate(final Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
addPreferencesFromResource(R.xml.preferences);
}
}Main.java
private SharedPreferences.OnSharedPreferenceChangeListener preferenceChangeListener = new SharedPreferences.OnSharedPreferenceChangeListener() {
@Override
public void onSharedPreferenceChanged(SharedPreferences sharedPreferences, String key) {
Log.e("SHARED", "VAL: " + sharedPreferences.getInt("seekbar_x",10));
}
};发布于 2016-05-21 12:43:24
在onCreate方法中,在末尾(在添加首选项之后)添加这一行:
SeekBarPreference pref = (SeekBarPreference) findPreference("seekbar_pref");然后在上面添加监听器如下:
pref.setOnPreferenceChangeListener(new Preference.OnPreferenceChangeListener() {
@Override
public boolean onPreferenceChange(Preference preference, Object newValue) {
int value = mSeekBarPreference.getProgress(); //or (int) newValue
//You can now use this value wherever you like:
pref.setSummary("Value: " + value);
return true;
}
});https://stackoverflow.com/questions/37362883
复制相似问题