gpt4 book ai didi

java - 如何以编程方式访问 Android R.raw 类

转载 作者:行者123 更新时间:2023-12-02 06:37:28 25 4
gpt4 key购买 nike

我正在尝试使用以下代码读取 res/raw 目录中的文本文件:

public String fetchParam(String name, int index){
InputStream is = getResources().openRawResource(R.raw.name);
InputStreamReader isreader = new InputStreamReader(is);
BufferedReader br = new BufferedReader(isreader);
...
}

问题在于“R.raw.name”,其中 name 不被解释为变量,而是被解释为名为“name”的 R.raw 类的成员。那么我该如何获取 R.raw.[作为名称传入的内容]?

最佳答案

首先,我想我应该说,如果您尝试像这样访问资源,那么您可能会以错误的方式进行操作。 R 类通常不应该以这种方式使用。

但是,如果您确实需要做您想做的事情,则可以使用反射。注意:不建议这样做,因为它会消耗大量开销,并且如果经常使用,会减慢应用程序的速度。

这是一个代码示例:

try
{
int itemId = R.raw.class.getField(name).getInt(null);
InputStream is = getResources().openRawResource(itemId);
InputStreamReader isreader = new InputStreamReader(is);
BufferedReader br = new BufferedReader(isreader);
}
catch (NoSuchFieldException ex)
{
// Handle
}
catch (IllegalAccessException ex)
{
// Handle
}

希望这有帮助:)

关于java - 如何以编程方式访问 Android R.raw 类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19484637/

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