標籤:
// 建立一個List對象,List對象的元素是Map
List<Map<String, Object>> listItems =
new ArrayList<Map<String, Object>>();
for (int i = 0; i < imageIds.length; i++)
{
Map<String, Object> listItem = new HashMap<String, Object>();
listItem.put("image", imageIds[i]);//為list對象設定圖片
listItems.add(listItem);//添加進組件
}
// 擷取顯示圖片的ImageView
imageView = (ImageView) findViewById(R.id.imageView);
// 建立一個SimpleAdapter
SimpleAdapter simpleAdapter = new SimpleAdapter(this,
listItems
// 使用/layout/cell.xml檔案作為介面布局
, R.layout.cell, new String[] { "image" },
new int[] { R.id.image1 });
grid = (GridView) findViewById(R.id.grid01);
// 為GridView設定Adapter
grid.setAdapter(simpleAdapter);
/***************以下兩個事件監聽器看似一樣將第二個刪去後顯示失敗,將第一個刪去後正常顯示。****
選中監聽器失效。。小編以為,本程式為點擊事件監聽,沒有選中的關係。。。。。
***************/
// 添加清單項目被選中的監聽器
grid.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener()
{
@Override
public void onItemSelected(AdapterView<?> parent, View view,
int position, long id)
{
// 顯示當前被選中的圖片
imageView.setImageResource(imageIds[position]);
}
@Override
public void onNothingSelected(AdapterView<?> parent)
{
}
});
// 添加清單項目被單擊的監聽器
grid.setOnItemClickListener(new AdapterView.OnItemClickListener()
{
@Override
public void onItemClick(AdapterView<?> parent, View view,
int position, long id)
{
// 顯示被單擊的圖片
imageView.setImageResource(imageIds[position]);
}
});
/***************************************************************************/
}
GirdView程式碼分析