Android-如何设置CheckBoxPreference的值?或
我正在构建一个应用程序,在这个应用程序中,我需要显示一个设置屏幕,用户可以在主活动的列表视图中查看哪些类别的项目 我正在解析这些类别的XML,因此Android-如何设置CheckBoxPreference的值?或,android,android-preferences,checkboxpreference,Android,Android Preferences,Checkboxpreference,我正在构建一个应用程序,在这个应用程序中,我需要显示一个设置屏幕,用户可以在主活动的列表视图中查看哪些类别的项目 我正在解析这些类别的XML,因此PreferenceScreen是通过编程完成的,所有CheckBoxPreferences都构建在一个循环中。代码: try { URL url = new URL("http://www.someurl.com/phone/categories.php"); DocumentBuilderFactory dbf = Documen
PreferenceScreen
是通过编程完成的,所有CheckBoxPreferences
都构建在一个循环中。代码:
try {
URL url = new URL("http://www.someurl.com/phone/categories.php");
DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
DocumentBuilder db = dbf.newDocumentBuilder();
Document doc = db.parse(new InputSource(url.openStream()));
doc.getDocumentElement().normalize();
NodeList nodeList = doc.getElementsByTagName("category");
for (int i = 0; i < nodeList.getLength(); i++) {
Element category = (Element)nodeList.item(i);
Node id = category.getElementsByTagName("id").item(0);
Node title = category.getElementsByTagName("name").item(0);
CheckBoxPreference togglePref = new CheckBoxPreference(this);
togglePref.setKey("category_" + id.getChildNodes().item(0).getNodeValue());
togglePref.setDefaultValue(true);
togglePref.setTitle(title.getChildNodes().item(0).getNodeValue());
root.addPreference(togglePref);
}
} catch(Exception ex) {
Log.e(this.getClass().getSimpleName(), ex.getMessage());
}
试试看{
URL=新URL(“http://www.someurl.com/phone/categories.php");
DocumentBuilderFactory dbf=DocumentBuilderFactory.newInstance();
DocumentBuilder db=dbf.newDocumentBuilder();
Document doc=db.parse(新的输入源(url.openStream());
doc.getDocumentElement().normalize();
NodeList NodeList=doc.getElementsByTagName(“类别”);
对于(inti=0;i
其中root
是PreferenceScreen
对象
我的问题是,我不仅需要存储一个复选框选项的标题,还需要存储类别的ID,但是CheckBoxPreference
对象中没有此类属性
我的问题是是否还有其他解决方法,或者我是否应该扩展CheckBoxPreference
类,并创建一些自定义的MyCheckBoxPreference
来存储另一个“值”
我的愿景是拥有与普通HTML复选框相似(或相同)的内容-虽然它有一个值,但如果未选中复选框,则不会设置(提交),另一方面,如果选中复选框,则会获得具体值,而不仅仅是真/假
AFAIKCheckBoxPreference
只有状态checked/unchecked,而没有可以返回的值
我正在考虑将偏好键设置为具体类别的ID,而不是category\uuu
,然后调用SharedReferences.getAll()
-我希望只返回选中的CheckBoxPreferences
,然后通过获取它们的密钥,我应该能够使用类别ID进行操作。。。这是否是一个简单的解决方案和良好的方法
非常感谢您的建议
我的问题是,我不仅需要存储一个复选框选项的标题,还需要存储类别的ID,但CheckBoxPreference对象中没有此类属性
嗯,这就是关键所在
我正在考虑将首选项设置为具体类别的ID而不是类别,然后调用SharedReferences.getAll()-我希望只返回选中的CheckBoxPreferences,然后通过获取它们的键,我应该能够使用类别ID进行操作。。。这是否是一个简单的解决方案和良好的方法
您将获得用户触摸过的所有
CheckBoxPreference
对象,无论它们是选中的还是未选中的。这可能是正确的方法。好的,我认为键就像是偏好的唯一标识符,而不是它的值。。。但我会尝试一下…@shadyyx:这是首选项唯一标识符。但是,对于布尔状态,除了标识符和是否选中之外,您不需要其他“值”。@Commonware是否可以根据条件更改复选框的状态,而不是用户是否单击复选框?@RainMan:嗯,是吗?@Commonware问题是我想在应用程序内购买时使用checkboxpreference,因此,如果购买失败,请取消选中该框,如果购买成功,请选中该框。但是,无论我做什么,即使购买失败,该框也会被选中。我问了一个问题。任何帮助都将不胜感激。