将Int引用硬编码为String以创建JAR

时间:2016-03-16 06:08:35

标签: android

我遇到了创建JAR的情况,我不想从/ res / values引用任何String或Int。所以我到处都是硬编码

event_info.put("CLIENT_HALT", new EventInfo(R.string.client_halt, R.drawable.error, 0, EV_PRIO_HIGH, 0));

如你所见" R.string.client_halt"指String" Halt"在res / values / abc.xml

但它是Int类型,因此我不能这样做

event_info.put("CLIENT_HALT", new EventInfo("Halt", R.drawable.error, 0, EV_PRIO_HIGH, 0));

下面是EventInfo方法

public EventInfo(int res_id_arg, int progress_arg, int priority_arg, int flags_arg)
    {
        res_id = res_id_arg;
        //icon_res_id = icon_res_id_arg;
        progress = progress_arg;
        priority = priority_arg;
        flags = flags_arg;
    }

如何克服此问题并在我的方法中硬编码int值。我尝试过以下情况,但它不会工作并且给我" NumberFormatException"

String halt = "Halt";
int foo = Integer.parseInt(halt);

由于

1 个答案:

答案 0 :(得分:0)

通过将id传递给类的构造函数,可以按以下方式检索字符串。

String stringValue = getResources().getString(R.string.client_halt);

如果您无法直接获取getResources(),请在构造函数中传递上下文并执行以下操作

_context.getResources().getString(R.string.client_halt);