当我使用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);
答案 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);