我无法从Hashmap中获取价值

时间:2014-03-02 18:47:19

标签: java android hashmap

当我使用map.put表示error.if我替换map.put(“Nos”,dataF)时,我无法从dataF获取值。 to 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);

2 个答案:

答案 0 :(得分:0)

您尝试将map.put("Nos", dataF[arrLength]);作为HashMap<String, String[]>,但dataF[arrLength]是一个String而您的hashmap需要一个Array字符串。

您可以将其更改为:

map.put("Nos", dataF);

如果你解决了这个问题,我认为下一行也会解决。

dataF[arrLength]您必须获得ArrayIndexOutOfBounds,因为您的数组的最后一个索引是dataF[arrLength - 1]

<强>更新

对你发表评论我认为你试试show hashMpa.getValue();但是你的值是String数组,所以你需要显示一个像hashMpa.getValue()[0];

的索引

您需要关注以显示值:

String[] value = hashMap.getValue();

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

答案 1 :(得分:0)

更新以下代码::

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