繁体   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