0

我正在构建一个应用程序并在以下领域使用标签。

1. Component Names (TextView, Buttons etc)
2. Buttons in alert boxes
3. Parameters to AsyncTask
4. Key names in Intent extras
5. Log tags

我有 strings.xml 文件来存储和使用标签。我将它用于第 1 类。您认为对其他人来说最好的选择是什么?

res/strings.xml 或常量类?

4

1 回答 1

1

我会向你建议我通常会做的事情:

对于用户将在屏幕上阅读或以任何方式从 XML 布局中引用的所有内容,请使用 strings.xml。我认为这包括您的 1 和 2。但请记住,对于 AlertDialogues,您也​​可以使用android.R.string.okorandroid.R.string.cancel等​​;这将因用途而异。

同样对于项目配置值或 API 密钥,您可以拥有一个带有字符串、整数等的 config.xml。这样可以在以后轻松更改这些值,而无需深入研究代码。

对于 AsyncTask,它所做的工作有很多不同,但通常是网络、数据库或磁盘操作,我尝试private static final String URL_PT1 = "http://...";在类本身中包含等,因为它们只对知道该地址(或数据库列)感兴趣, 或文件前缀)

对于键名(在 Intent 和 Fragment 参数中),我使用private static final String KEY_VALUE = "renjith.Key.MyClassName.VALUE";然后public static Bundle getIntentExtras(String value)在该类中创建一个将正确分配额外值的类。那是因为只有一个类需要知道它的 KEY 值,没有理由让这些公共可访问,这只会为外部类做错了错误。

对于 Logs (5),在每个类上创建 a private static final String TAG = "Renjith.ThisClassName";(对于 Fragments,将 TAG 公开以用于事务)。这样您就可以在 LogCat Renjith.* 中创建一个过滤器,并且您可以轻松识别此日志的来源

编辑:

对于共享首选项,它取决于:

对于 GlobalSharedPreferences,我将创建一个类来使用静态 set/get 方法来处理它们,这些方法必须接收 Context 和private static该类中的所有键。

对于本地共享首选项(只有一个类对保存/检索感兴趣),我将在一个 SharedPreferences 文件中处理,该文件与该类具有相同的名称,并且所有键都在private static该类中。

同样,同样的哲学,只有真正需要了解这些细节的类才会知道它们,并通过直接方法调用抽象到其余的类。

于 2013-03-05T10:22:49.667 回答