私はこの機能を使用しようとしていますが、できません。私のアプリケーションはSQLデータベースを持っておらず、.xmlファイルしかありません。私は、設定を見てファイルを変更したいと思います。たとえば、data.xmlファイルやfile2.xmlファイルを表示したり、チェックボックスをオンまたはオフにしたりすることができます。Android - 共有プレビューで表示するファイルを変更する方法
活動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 /生に配置されているから、あなたが見ることができるように。ご協力ありがとうございました。
ありがとうございました。残念ながら、どのアクティビティでコードを記述するのか分かりませんでした。 'public ArrayList readGroupsFromXml(){'など。私はそれがメインアクティビティにあることは分かっていますが、残りは?私は他のアクティビティで何を書く必要があるのか分かりませんでした。チェックボックスは 'public static final String USA_TITOLO_CUSTOM_PREF =" usa_titolo_custom ";'です。 ご迷惑をおかけします。 –
Carontes