public class MainActivity extends Activity { private GridView gv; private SimpleAdapter sim_adapter; private List<Map<String,Object>>dataList; @Override? ? protected void onCreate(Bundle savedInstanceState) {? ? ? ? super.onCreate(savedInstanceState);? ? ? ? setContentView(R.layout.activity_main);? ? ? ? gv=(GridView) findViewById(R.id.gridView1);? ? ? ? dataList=new ArrayList<Map<String,Object>>();? ? ? ? sim_adapter=new SimpleAdapter(this, getData(), R.layout.item, new String[]{"img","text"}, new int[]{R.id.imageView1,R.id.textView1});? ? ? ? gv.setAdapter(sim_adapter);? ? ? ??? ? }? ? private List<Map<String,Object>> getData(){? ? int[] img=new int[]{R.drawable.img1,R.drawable.img2,R.drawable.img3,R.drawable.img4,R.drawable.img5};? ? String[] imgName=new String[]{"圖片1","圖片2","圖片3","圖片4","圖片5"};? ? ? ? Map<String,Object>map=new HashMap<String, Object>();? ? for(int i=0;i<=img.length;i++){? ? map.put("img", img[i]);? ? map.put("text", imgName[i]);? ? dataList.add(map);? ? }? ? return dataList;? ? }}
7 回答

阿旭_
TA貢獻(xiàn)217條經(jīng)驗 獲得超353個贊
去掉多余等號
for(int?i=0;i<=img.length;i++){
替換為:
for(int?i=0;i<img.length;i++){

Mr_QiuL
TA貢獻(xiàn)5條經(jīng)驗 獲得超2個贊
把 new map 集合放到 for循環(huán)里,要不 你的dataList集合中所有元素都是 同一個map ?也就是說 dataList.get(0),dataList.get(1)………… 里面的存儲的map集合通過text,img取出的值都是一樣的。
這是適配器是系統(tǒng)的,你應(yīng)該自己寫一個適配器,而且系統(tǒng)的simpleAdapter 傳入的map的值不應(yīng)該為object,你運行后可能問題為類型轉(zhuǎn)換異常。

慕粉3853642
TA貢獻(xiàn)1條經(jīng)驗 獲得超0個贊
?Map<String,Object>map=new HashMap<String, Object>();這句話放在for循環(huán)內(nèi)部試試,應(yīng)該就不會出現(xiàn)圖片一樣的事情了
- 7 回答
- 0 關(guān)注
- 1538 瀏覽
添加回答
舉報
0/150
提交
取消