Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/367.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 从Android中的ArrayAdapter访问资源_Java_Android_Android Arrayadapter - Fatal编程技术网

Java 从Android中的ArrayAdapter访问资源

Java 从Android中的ArrayAdapter访问资源,java,android,android-arrayadapter,Java,Android,Android Arrayadapter,我定义了一些资源,例如: <color name="lightGrey">#FFCCCCCC</color> <integer name="KEY_POSITION_ARM">2</integer> …但我会遇到类似“类型ContinuityAdapter的方法getResources()未定义”的错误。(连续自适应扩展阵列自适应) 有什么好办法吗 谢谢 这是一个例子: switch (currentModule.keyPosition) { c

我定义了一些资源,例如:

<color name="lightGrey">#FFCCCCCC</color>
<integer name="KEY_POSITION_ARM">2</integer>
…但我会遇到类似“类型ContinuityAdapter的方法getResources()未定义”的错误。(连续自适应扩展阵列自适应)

有什么好办法吗

谢谢

这是一个例子:

switch (currentModule.keyPosition) {
case activity.getResources().getInteger(R.integer.KEY_POSITION_ARM):
    moduleDataView.keyPosition.setText("TEST");
    moduleDataView.keyPosition.setTextColor(Color.GREEN);
    break;
case R.integer.KEY_POSITION_ARM:
    moduleDataView.keyPosition.setText("ARM");
    moduleDataView.keyPosition.setTextColor(Color.RED);
    break;
}
第一种情况给出一个错误,第二种情况也不使用XML文件中的值。虽然正如你所说,我可以用R。。。只要我在任何地方都这样使用它,它就是有价值的。只是不确定这是否被视为“最佳实践”。谢谢

您需要一个对象来调用方法。通常,您可以通过自定义适配器的构造函数传递上下文或其子类(即活动)

比如:

然后使用:

mContext.getResources()...
编辑: 这似乎是避免切换的情况。见:




谢谢。我曾经尝试过它,我认为它不起作用,但现在我意识到我在执行时遇到了另一个错误:“switch(foo){case activity.getResources().getInteger(R.integer.KEY\u POSITION\u ARM):'即使资源是常量,case语句显然也需要常量表达式。我是否一直在使用if语句?我需要查看更多代码。通常,我试图避免切换case或直接使用资源id(即case R.id.xyz)。我编辑了问题以包含更好的代码示例。谢谢
public ContinuityAdapter extends ArrayAdapter {
    private final Context mContext;
    ...
    public ContinuityAdapter(Context context) {
        mContext = context;
    }
}
mContext.getResources()...