我必须将待办事项应用翻译成多种语言。
我有一个包含 3 个级别(低、中、高)的枚举,我还用它来引用优先级标签。这是它的样子:
public enum Priority {
LOW(R.drawable.priority_low),
MEDIUM(R.drawable.priority_medium),
HIGH(R.drawable.priority_high);
private int drawableResource;
Priority(int drawableResource) {
this.drawableResource = drawableResource;
}
public int getDrawableResource() {
return drawableResource;
}
}
这就是我创建一些示例待办事项的方式:
private TodoItemDao() {
todoItems.add(new TodoItem("pet shop", new Date(), "buy a nice zombie pig", Priority.HIGH));
todoItems.add(new TodoItem("barber", new Date(), "cut lion's hair", Priority.MEDIUM));
todoItems.add(new TodoItem("mine", new Date(), "we need redstones", Priority.LOW));
}
那么在这个场景中,我如何将todo优先级翻译成不同的语言呢?我通常这样做
titleEditText = (EditText) findViewById(R.id.et_title);
...但不知道如何在枚举中执行此操作以及如何在项目创建时设置优先级。有什么想法吗?
编辑:
恐怕我还不够清楚。用这一行:
titleEditText = (EditText) findViewById(R.id.et_title);
我想表明我已经在使用 strings.xml。我只是不知道如何将它与枚举一起使用。
最佳答案
不要直接从枚举中进行。像往常一样将翻译放在 strings.xml 文件中。编写一个函数 int mapToStringResource(Priority)
将 Priority 转换为正确的 id。调用 setText(mapToStringResource(priority))
设置文本。
关于Android - 枚举的本地化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43399277/