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