3

我有很多文本文件,想把它们放在一个 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);
4

2 回答 2

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

于 2012-09-18T09:49:41.297 回答
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)
    {
    }
于 2014-12-09T10:31:13.217 回答