如何从循环中的原始资源中读取多个文件?

时间:2012-09-18 07:43:54

标签: java android for-loop resources

我有很多文本文件,想把它们放在for循环中。

我从上次活动获得了一个具有资源名称的Extra 并有一个资源名称为的数组 原始资源中的文本文件来自{d0,d1,d2,d3,...,d79} 我想检查名称和数组名称,并将查找名称放入资源! 我有错误(res = R.raw。(d [i])) 我的代码:

    int res = 0;
    for (int i = 0; i <=79; i = i + 1) {
        if (s.equals(d[i])){
            res=R.raw.(d[i])
        }
    } 
    inputstream = getResources().openRawResource(res);

2 个答案:

答案 0 :(得分:3)

您可以使用getIdentifier (String name, String defType, String defPackage)动态获取资源ID,

ArrayList<Integer> id = new ArrayList<Integer>();
for (int i = 0; i <= 79; i++) {
  id.add(getResources().getIdentifier("d"+i, "raw", getPackageName()));
}

现在,您将拥有id ArrayList

中的所有资源id

答案 1 :(得分:0)

我需要在一个地方找到6种不同的资源。

    try
     {
        for (int i = 0; i < 6; i++ )
         {
              String fname = "p" + i;
              int id = context.getResources().getIdentifier(fname, "drawable", "com.example.yourproject");
              if (id == 0)
              {
                  Log.e(TAG, "Lookup id for resource '"+fname+"' failed");
                  // graceful error handling code here
              }
             scoresBm[i] =  (Bitmap) BitmapFactory.decodeResource(context.getResources(), id);
         }
    }
    catch(Exception E)
    {
    }