对于我的应用程序,我有一组相当复杂的配置选项供用户选择。我目前正在使用PreferenceActivity作为这些选项的用户界面,并使用共享首选项存储选项。作为我必须适应的一些设置的示例:
对的列表:要选择背景图案,用户可以选择使用1到5种不同的形状(每个形状都是.png文件)并为每个形状指定一种int颜色。例如,用户可以选择橙色方块,绿色三角形和红色矩形。
分层数据:我的应用程序的一部分可以配置为使用五种模式之一。每种模式都有一些相关的唯一设置,例如一种模式需要选择两个整数,另一种模式可能需要选择一个布尔值。
但是,我觉得PreferenceActivity对上述设置效果不佳,因为:
我可以编写自己的Preference类来配置列表,但是我发现与实现典型的View相比,实现它们非常费力,我仍然需要处理存储问题。
我的计划是:
这个计划看起来是否合理?我担心我不是以Android的方式做事,但在我看来,共享偏好和PreferenceActivity不适合我的需求。 / p>
答案 0 :(得分:1)
自从我开始使用Android以来,我一直在创建自己的偏好活动。这看起来真的很难,因为互联网上没有太多关于如何做的文档,但实际上它实际上非常简单。正如您所说,它可以让您更自由地决定UI的外观和行为。如果你想知道如何自己做偏好,这里有一个简单的小片段:
public class myprefs extends Activity{
private static final String PREFS_XML = "prefs_xml";
private static final String PREF_1 = "pref_1";
String preference;
private SharedPreferences preferences = null;
public void loadPrefs(){
preferences = this.getSharedPreferences(PREFS_XML, Activity.MODE_PRIVATE);
preference = preferences.getString(PREF_1, "default value");
}
}
获得自己的偏好几乎是多么简单。要设置它们,请使用
preferences.edit().putString(PREF_1, "hello!").commit();
可以将其放入onClick,onItemSelected或任何其他要放入的“事件”中。我将'preferences'设置为类范围的实例,以便我可以在类中的任何位置访问它而无需重新实例化它。我希望这能帮到你一点点。作为您具体问题的具体答案,我认为您的计划非常合理。