gpt4 book ai didi

java - 从 Android 中的 ArrayAdapter 获取资源

转载 作者:塔克拉玛干 更新时间:2023-11-02 08:51:01 26 4
gpt4 key购买 nike

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

<color name="lightGrey">#FFCCCCCC</color>
<integer name="KEY_POSITION_ARM">2</integer>

...我有一个 ArrayAdapter 向 TextView 显示项目。我正在尝试使用如下代码访问这些值:

keyPosition = getResources().getInteger(R.integer.KEY_POSITION_ARM);
moduleDataView.setTextColor(getResources().getColor(R.color.darkgreen));

...但我收到类似“ContinuityAdapter 类型未定义方法 getResources()”的错误。 (ContinuityAdapter 扩展 ArrayAdapter)

有解决这个问题的好方法吗?

谢谢

这是一个例子:

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... 值。只是不确定这是否被认为是“最佳实践”。谢谢

最佳答案

你需要一个 Context对象调用 Context.getResources()方法。通常您可以通过自定义适配器的构造函数传递 Context 或其子类(即 Activity)。

喜欢:

public ContinuityAdapter extends ArrayAdapter {
private final Context mContext;
...
public ContinuityAdapter(Context context) {
mContext = context;
}
}

然后使用:

mContext.getResources()...

编辑:这似乎是避免切换的情况。见:

关于java - 从 Android 中的 ArrayAdapter 获取资源,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8217677/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com