2012-10-31 42 views
1

我試圖找回從原始文件夾動態代碼的文件,如下沒有得到包名

try{ 
     DataInputStream dataIO= new DataInputStream(getResources().getIdentifier("raw/"+chapter, null ,<what to write>); 
     String strLine= null; 
     while((strLine = dataIO.readLine())!=null){ 
      buffer.append(strLine); 
      buffer.append("\n"); 
     } 
     dataIO.close(); 
    }catch(Exception e){} 

如果我鍵入「寫什麼」部分直接在包的名稱,它顯示錯誤。請給出一些想法。

+1

什麼錯誤?顯示堆棧跟蹤 –

+0

我的意思是語法錯誤。我的軟件包名稱是com.expandableList。如果我在包區域中寫入「com.expandableList」。它顯示紅色下劃線。 – test1990bdvt

回答

2

假設要動態獲取原始資源的ID,下面的代碼片段將是有益的:

int id = getResources().getIdentifier(chapter, "raw", getPackageName()); 

和您的DataInputStream類對象應該這樣構成的:

DataInputStream dataIO= new DataInputStream(getResources().openRawResource(id)); 
+0

它的工作。謝謝。 – test1990bdvt

+0

我對android很陌生。所以請給我一些關於如何提高技能的建議。是否真的有必要掌握它的核心Java。 – test1990bdvt

+1

那麼,掌握Java語言肯定有幫助,但是當你學習新事物時你可以改進。獲取一本好書(參考android標籤[info](http://stackoverflow.com/tags/android/info)頁上的書籍推薦列表),並閱讀並嘗試本書中提到的內容。 – Rajesh

0

一完全限定資源名稱的格式爲「package:type/entry」,這在代碼中缺少。我使用下面的代碼來訪問原始資源。 (「package:type/entry」,null,null);這個函數返回的是一個數組,