0
我试图来解决这个功能,但我不能。我的应用程序没有SQL数据库,它只有.xml文件。我想通过首选项设置更改文件以查看,例如,我将能够查看或文件data.xml或文件data2.xml检查或取消选中复选框。Android的 - 如何更改文件的查看与SharedPreferences
活动PreferencesFromXml:
public class PreferencesFromXml extends PreferenceActivity{
public static final String COLORE_DEFAULT = "#000000";
public static final String COLORE_PREF = "colore";
public static final String TITOLO_PREF = "titolo";
public static final String USA_TITOLO_CUSTOM_PREF = "usa_titolo_custom";
@Override
protected void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
addPreferencesFromResource(R.xml.preferences);
SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(this);
Preference titoloPrefs = findPreference(TITOLO_PREF);
titoloPrefs.setSummary(prefs.getString(TITOLO_PREF, getString(R.string.titolo_custom)));
titoloPrefs.setOnPreferenceChangeListener(new OnPreferenceChangeListener()
{
public boolean onPreferenceChange(Preference prefs, Object value)
{
prefs.setSummary((CharSequence) value);
return true;
}
});
}
}
主要活动:
public class Main extends ExpandableListActivity{
ExpandableListAdapter mAdapter;
private ArrayList<Group> groups;
@Override
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.list_main);
groups = readGroupsFromXml();
mAdapter = new MyExpandableListAdapter(getLayoutInflater(), groups);
setListAdapter(mAdapter);
registerForContextMenu(getExpandableListView());
}
public ArrayList<Group> readGroupsFromXml()
{
try
{
final XmlHandler handler = new XmlHandler();
final SAXParser sp = SAXParserFactory.newInstance().newSAXParser();
sp.parse(getApplicationContext().getResources().openRawResource(R.raw.data), handler);
return handler.getGroups();
}
catch (Exception e)
{
Log.e("Error", "xml", e);
}
return null;
}
那我就不知道该怎么办,选择是否选择该复选框时使用的文件。我停下来这里(虽然我不知道如果这是正确的):
@Override
protected void onResume(){
super.onResume();
SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(this);
Editor editor = prefs.edit();
String usa_titolo_custom;
if (prefs.getBoolean(PreferencesFromXml.USA_TITOLO_CUSTOM_PREF, false))
{
正如你可以从代码.xml文件看到位于RES /生。感谢您的帮助。
非常感谢您的回答。不幸的是,我不明白在哪些活动中放置了代码。 '公共ArrayList readGroupsFromXml(){'等我知道这在主要活动,但其余?我不明白我需要在其他Activity中写什么。复选框是'public static final String USA_TITOLO_CUSTOM_PREF =“usa_titolo_custom”;'。 抱歉打扰你。 –
Carontes
2012-02-17 03:04:30