簡體   English   中英

我不能從Hashmap中獲取價值

[英]I can't take value from Hashmap

使用map.put表示錯誤時,我無法從dataF中獲取價值。如果我替換map.put(“ Nos”,dataF); 到map.put(“ Nos”,dataF [arrLength])工作,但返回[Ljava.lang.string; @ b1f37df0

    ArrayList<HashMap<String,String[]>> ArrList = new ArrayList<HashMap<String,String[]>>();

    Intent intent = getIntent();
    String[] dataF = intent.getStringArrayExtra("Money");

    ListView list1 = (ListView)findViewById(R.id.listView1);
    int arrLength = dataF.length;

    for(int i=0;i<arrLength;i++)
    {
    HashMap<String, String[]> map = new HashMap<String, String[]>();
    map.put("Nos", dataF[arrLength]);   //  << error 
    ArrList.add(map);          // << error
    }
    ListAdapter adapters = new SimpleAdapter(resultActivity.this,ArrList,
            R.layout.activity_column,
            new String[] {"Nos"},new int[] { R.id.textView1});
    list1.setAdapter(adapters);

您嘗試放置map.put("Nos", dataF[arrLength]); 就像HashMap<String, String[]>但是dataF[arrLength]是一個String而您的hashmap需要一個String Array

您可以將其更改為:

map.put("Nos", dataF);

如果您解決了這個問題,我想下一行也解決了。

並使用dataF[arrLength]您必須獲得ArrayIndexOutOfBounds因為數組的最后一個索引是dataF[arrLength - 1]

更新

用您對評論的發言,我想您嘗試顯示hashMpa.getValue(); 但是您的值是String數組,因此您需要顯示其中一個索引,例如hashMpa.getValue()[0];

您需要遵循以下步驟來顯示值:

String[] value = hashMap.getValue();

for ( int i = 0 ; i < value.lenght() ; i++)
        Log.d("index "+i , value[i]);

更新代碼如下:

    HashMap<String, String[]> map = new HashMap<String, String[]>();
    map.put("Nos", dataF);   //  Pass the Array instead String
    ArrList.add(map);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM