Android 如何使用NumberPicker在首选项中进行静态编码?
我正在尝试使用安静编码的NumberPicker,因为我还没有找到其他的,但我无法让它工作。 我将库作为项目导入,然后将其添加到我的项目中: 偏好活动:Android 如何使用NumberPicker在首选项中进行静态编码?,android,dialog,Android,Dialog,我正在尝试使用安静编码的NumberPicker,因为我还没有找到其他的,但我无法让它工作。 我将库作为项目导入,然后将其添加到我的项目中: 偏好活动: public class MainPrefs extends PreferenceActivity{ @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState);
public class MainPrefs extends PreferenceActivity{
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
PreferenceManager preferenceManager = getPreferenceManager();
preferenceManager.setSharedPreferencesMode(MODE_PRIVATE);
preferenceManager.setSharedPreferencesName("numberPicker.preferences");
this.addPreferencesFromResource(R.xml.main_preferences);
this.findPreference("SMSSentLimit").setOnPreferenceChangeListener(new OnPreferenceChangeListener(){
@Override
public boolean onPreferenceChange(Preference preference, Object newValue) {
TrackerService.updateStats(Long.decode(newValue.toString()));
return true;
}
});
}
}
main_preference.xml
我不能用这种方式编译我的项目,要编译我的项目,我必须用这种方式编辑我的.xml:
<com.michaelnovakjr.numberpicker.NumberPickerPreference
android:key="demo.preference"
android:title="Sample Number Picker"
android:summary="Number picker as a preference" />
删除defaultValue、startRange和endRange,通过这种方式编译我的项目,我可以看到我的首选项,但当我单击它时,我会强制关闭,因为我没有定义这些值。为什么我可以添加此值?有人在这个图书馆工作过吗
谢谢您需要在首选项xml文件的顶层添加库属性的模式。它应该是这样的-第二行/第三行是重要的
<?xml version="1.0" encoding="utf-8"?>
<PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:picker="http://schemas.android.com/apk/res/[com.yourpackagename]">
<PreferenceCategory android:title="General" >
<EditTextPreference
android:defaultValue="0"
android:title="@string/SMSSentLimitTitle"
android:key="SMSSentLimit"
android:summary="@string/SMSSentLimitSummary"
android:inputType="number" />
<com.michaelnovakjr.numberpicker.NumberPickerPreference
android:key="demo.preference"
android:title="Sample Number Picker"
android:summary="Number picker as a preference"
picker:defaultValue="15"
picker:startRange="-50"
picker:endRange="50" />
</PreferenceCategory>
</PreferenceScreen>
您是否可以尝试在xmlns:picker行中使用自己的包名,而不是com.michaelnovakjr.numberpicker
?您知道为什么setOnPreferenceChangeListener不起作用吗?需要特别的东西吗?对不起,我不知道,我觉得还可以。如果你需要更多帮助,也许你可以开始一个新问题。请看一看:)
<?xml version="1.0" encoding="utf-8"?>
<PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:picker="http://schemas.android.com/apk/res/[com.yourpackagename]">
<PreferenceCategory android:title="General" >
<EditTextPreference
android:defaultValue="0"
android:title="@string/SMSSentLimitTitle"
android:key="SMSSentLimit"
android:summary="@string/SMSSentLimitSummary"
android:inputType="number" />
<com.michaelnovakjr.numberpicker.NumberPickerPreference
android:key="demo.preference"
android:title="Sample Number Picker"
android:summary="Number picker as a preference"
picker:defaultValue="15"
picker:startRange="-50"
picker:endRange="50" />
</PreferenceCategory>
</PreferenceScreen>