2015-01-16 20 views
0

我想從ListView我有,但是當我使用getItemPostion結果是不正確的一個String如何獲得和分割字時,你得到它的形式列表視圖

我的產品清單是

4WIFI 
5WIFI 
6WIFI 

,當我使用

ListView lv; 
String network = lv.getItemAtPosition(0).toString; 

結果是

"{key=4WIFI}" 

,我要的是結果

4WIFI 

,這是我的名單

ITEM_KEY = "key" 

this.adapter = new SimpleAdapter(MainActivity.this, arraylist, android.R.layout.simple_expandable_list_item_1, new String[] { ITEM_KEY }, new int[] { android.R.id.text1 }); 
    lv.setAdapter(this.adapter); 

的代碼,這是添加項目代碼到我的陣列

ArrayList<HashMap<String, String>> arraylist = new ArrayList<HashMap<String, String>>(); 

public void onClick(View view) 
{ 
    arraylist.clear(); 
    wifi.startScan(); 

    Toast.makeText(this, "Scanning...." + size, Toast.LENGTH_SHORT).show(); 
    try 
    { 
     size = size - 1; 
     while (size >= 0) 
     { 
      HashMap<String, String> item = new HashMap<String, String>(); 
      item.put(ITEM_KEY, results.get(size).SSID); 
      arraylist.add(item); 
      size--; 
      adapter.notifyDataSetChanged(); 
     } 

    } 
    catch (Exception e) 
    { } 
} 

請指導我該怎麼辦

+1

發佈你如何獲得''{key = 4WIFI}「'和''arraylist'初始化。 – Simas

+2

'getItemPosition'可能返回'Object',你只是想要一個'String'可能類型轉換可以解決這個問題。你也可以使用'arraylist.get(position)'來達到同樣的效果。 – Prateek

+1

請粘貼您的完整代碼。這樣我們就可以看到你的{key = 4WIFI}是怎麼來的。 – droidd

回答

0

不知道在哪裏或者你如何獲得這些String,但一種解決方案可能是這樣的:

String YourString; // Already containing "{key=4WIFI}" etc 
String OmitFirstPart; 
if(YourString.startsWith("{key=")){ 
for (OmitFirstPart: YourString.split("=", 6)){ 
    OmitFirstPart=YourString; 
    } 
String OmitLastPart=OmitFirstPart.split("}", -5); 

就是這樣。

+0

如果我不知道文本長度,但我知道一個文本形式我該怎麼做才能解決它? –

+0

@KanokKonglar在這種情況下,使循環中的6和最長的字符串一樣多 – Shervin

+0

@KanokKonglar,只是省略-5,只是通過「}」 – Shervin