【发布时间】:2013-01-30 08:59:56
【问题描述】:
我对我的 Android 代码的性能和最佳方法有疑问。
我需要做的很简单,我想动态地将一个文本值分配给一个字符串资源,这取决于一个 int 参数:
现在我使用的是大开关盒
int messagesCategory;
if(extras !=null) {
messagesCategory = extras.getInt("category");
}
TextView titleText;
titleText = (TextView) findViewById(R.id.headerTitle);
switch (messagesCategory) {
case 1: titleText.setText(R.string.TitleMessageList1); break;
case 2: titleText.setText(R.string.TitleMessageList2); break;
case 3: titleText.setText(R.string.TitleMessageList3); break;
case 4: titleText.setText(R.string.TitleMessageList4); break;
case ...: titleText.setText(R.string.TitleMessageList...); break;
case n: titleText.setText(R.string.TitleMessageListn); break;
default: titleText.setText("a default title"); break;
}
假设我在这个开关中有 30 行... 它有效,但在许多情况下,看起来有更好的方法来实现这一点。 不幸的是,看起来不可能为 R.string 分配一些动态的东西..
所以我的第一个问题是:1) 性能方面,在这种情况下,30 左右的情况下使用大开关是否有问题? 2) 最好的方法应该是什么?
谢谢,祝你有美好的一天
【问题讨论】:
-
为什么不使用字符串数组资源?
标签: android performance switch-statement