1. 使用流程 2. 常用屬性 numColumns:指定顯示的列數,若不指定該屬性,則預設所有項排成1列。 verticalSpacing:行距。 horizontalSpacing:列距,若指定了numColumns,則按照 ...
1. 使用流程
2. 常用屬性
numColumns:指定顯示的列數,若不指定該屬性,則預設所有項排成1列。
verticalSpacing:行距。
horizontalSpacing:列距,若指定了numColumns,則按照numColumns均分寬度排列。
3. 事件監聽(同ListView)
onItemClick(Adpater<?> parent, View view, int position, long id)
parent:官方解釋為:The AdapterView where the click happened,也就是用戶所點擊的AdapterView,這個參數一般不用。
view:當前點擊的列表項所對應的佈局View對象,可通過這個參數獲得相應的列表項內部的組件,進而對其進行操作。舉個例子,假設有一個ListView,含有4個列表項,你點了第2個,那麼通過view你就可以操作第2個列表項裡面的TextView、ImageView等等的組件(假設存在)。
position:當前點擊的列表項的位置,從0開始,也就是點擊第n個,position就是n-1。
id:當前點擊的列表項的序號,也是從0開始,絕大部分時候position和id是一樣的。
4. 範例
public class GridViewActivity extends Activity implements AdapterView.OnItemClickListener{
private GridView gridView;
private List<Map<String, Object>>data;
private int[] icon = {R.drawable.address_book, R.drawable.calendar,
R.drawable.camera, R.drawable.clock, R.drawable.games_control,
R.drawable.messenger, R.drawable.ringtone, R.drawable.settings,
R.drawable.speech_balloon, R.drawable.weather, R.drawable.world,
R.drawable.youtube};
private String[] iconName = {"通訊錄", "日曆", "照相機", "時鐘", "游戲", "簡訊", "鈴聲", "設置", "語音", "天氣", "瀏覽器", "視頻"};
private SimpleAdapter simpleAdapter;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_grid_view);
//2、新建適配器
//3、綁定數據源
data = new ArrayList<Map<String, Object>>();
simpleAdapter = new SimpleAdapter(this, getData(), R.layout.grid_view_item, new String[]{"icon", "iconName"}, new int[]{R.id.icon, R.id.iconName});
//4、設置適配器
gridView = (GridView) findViewById(R.id.gridview);
gridView.setAdapter(simpleAdapter);
//5、設置監聽器
gridView.setOnItemClickListener(this);
}
//1、準備數據源
private List<Map<String,Object>> getData() {
for (int i = 0; i < icon.length; i++) {
Map<String, Object>map = new HashMap<String, Object>();
map.put("icon", icon[i]);
map.put("iconName", iconName[i]);
data.add(map);
}
return data;
}
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
Toast.makeText(this, iconName[position], Toast.LENGTH_SHORT).show();
}
}
需要練習素材可到我的主頁下載文件:GridView練習素材