请先查看我的代码:
private ArrayList<HashMap<String, String>> list = new ArrayList<HashMap<String, String>>();
//...
ImageView temp = new ImageView(MyApp.this);
temp.setImageResource(R.drawable.icon);
//...
HashMap<String, String> map = list.get(i);
map.put("pic", temp.toString()); //"pic" will map to a ImageView
以下是我的问题:
我知道,
map.put("pic", temp.toString());
错了。
但是正确的方法是什么。
提前致谢。
答案 0 :(得分:0)
您无法获取ImageView
的资源参考。您只能通过调用Drawable
上的getDrawable()
来获取ImageView
。
它无法帮助您获取Drawable
的字符串表示。
答案 1 :(得分:0)
在哈希映射中包含图像ID的正确方法是使用HashMap,其中object对应于图像ids(int)。试试这个我自己做过的。
答案 2 :(得分:0)
首先使用此功能获取图标或图像的可绘制ID。
int idImage = getResources().getIdentifier("R.drawable.icon", "drawable", getActivity().getPackageName());
如果您正在使用片段,请在致电getActivity()
之前使用getPackageName()
。
然后将idImage
传递给String
并将其放入您的HashMap
String idImageString = String.valueOf(idImage);
HashMap<String, String> map = new HashMap<String, String>();
map.put("imageList", idImageString);
productsList.add(map);
答案 3 :(得分:0)
如果你想将可绘制文件夹中的图像显示到hashmap中,你可以非常轻松地完成...你可以显示它们也将它们显示在图像视图或其他任何内容中。
HashMap<String,Integer> file_maps = new HashMap<String, Integer>();
file_maps.put("Picture1",R.drawable.pic1);
file_maps.put("Picture2",R.drawable.pic2);
for(String name : file_maps.keySet()){
TextSliderView textSliderView = new TextSliderView(this);
// initialize a SliderLayout
textSliderView
.description(name)
.image(file_maps.get(name))
.setScaleType(BaseSliderView.ScaleType.Fit)
.setOnSliderClickListener(this);
//add your extra information
textSliderView.bundle(new Bundle());
textSliderView.getBundle()
.putString("extra",name);
mDemoSlider.addSlider(textSliderView);
}
主要的是&lt;字符串,整数&gt;