2010-11-01 56 views
0

我認爲我有一個很容易解決的問題,但是我一直在頭撞牆,試圖通過它幾個小時!從字符串或文件中加載字符串值而不是類文件中的「列表」

我有一個加載的URL列表中的適配器:

adapter=new MyAdapter(this, lStrings); 
list.setAdapter(adapter); 

的URL列表如下:

private String[] lStrings={ 
"http://www.domain.com/file1.jpg", 
"http://www.domain.com/file2.jpg", 
"http://www.domain.com/file3.jpg", 
}; 

我想反而是從文本文件中加載這些值位於SD卡上。對於這個問題,我可以將文本文件中的值加載到字符串中,然後將字符串加載到列表中,因爲我認爲這將是「更簡潔的方法」。但是,所有嘗試這樣做都失敗了。

舉例來說,我替換爲上面的代碼片段:

private String[] lStrings= 
{  
     MainActivity.this.getString(R.string.myurllist) 
}; 

......但後來我得到一個強制關閉的負載。

我對Java,Android和一般開發有點新。所以如果這真的很愚蠢,請原諒我的無知。

在此先感謝您提供給我的任何建議。

+0

你的myurllist在資源中是什麼樣的? – Aliostad 2010-11-01 15:20:09

+0

現在,它只有一行!我試圖刪除任何可能導致它不起作用的東西。我也嘗試刪除引號,添加「網址格式」等,我不認爲標記是問題?我可能是錯的。它看起來是這樣的:「http://a3.twimg.com/profile_images/77641093/AndroidPlanet_normal.png」 RayHaque 2010-11-01 16:52:49

回答

1

看起來您可以使用getStringArray(resourceId)而不是getString

在這種情況下,你會創建一個字符串數組資源(在arrays.xml),這將是這樣的:

<?xml version="1.0" encoding="utf-8"?> 
    <resources> 
     <string-array name="colors"> 
      <item>red</item> 
      <item>orange</item> 
      <item>yellow</item> 
      <item>green</item> 
      <item>blue</item> 
      <item>violet</item> 
     </string-array> 
    </resources> 

那麼你的代碼將是:

private String[] lStrings= getStringArray(R.array.myurllist) 

點擊此處瞭解:http://developer.android.com/resources/samples/ApiDemos/res/values/arrays.html

+0

嘿,那就是票。謝謝!!我將它作爲「私人」運行時遇到了一些問題,所以我將代碼合併爲一個龐然大物,並且運行得非常完美。這是我最終以... String [] lStrings = MainActivity.this.getResources()。getStringArray(R.array.myurllist); adapter = new LazyAdapter(this,lStrings); – RayHaque 2010-11-01 18:37:03

相關問題