package com.example.android_gridview;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import android.os.Bundle;
import android.app.Activity;
import android.view.Menu;
import android.view.View;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemClickListener;
import android.widget.AdapterView.OnItemSelectedListener;
import android.widget.GridView;
import android.widget.ImageView;
import android.widget.SimpleAdapter;
public class MainActivity extends Activity {
GridView grid;
ImageView image;
int[] imageIds = new int[]
{
R.drawable.one,
R.drawable.two,
R.drawable.three,
R.drawable.four,
R.drawable.one_one,
R.drawable.two_two,
R.drawable.three_three,
R.drawable.four_four
};
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
//创建一个List对象,List对象的元素是Map
List> listItems = new ArrayList>();
for(int i = 0 ; i < imageIds.length; i++){
Map listItem = new HashMap();
listItem.put("image", imageIds[i]);
listItems.add(listItem);
}
//获取显示图片的 ImageView
image = (ImageView) findViewById(R.id.image01);
grid = (GridView) findViewById(R.id.grid01);
//创建一个SimpleAdapter
SimpleAdapter simpleAdapter = new SimpleAdapter (this,
listItems,R.layout.cell,new String[] {"image"},new int[] {R.id.image1});
//为GridView设置Adapter
grid.setAdapter(simpleAdapter);
//添加列表项被选中的监听器
grid.setOnItemSelectedListener(new OnItemSelectedListener()
{
@Override
public void onItemSelected(AdapterView> parent, View view,
int position, long id) {
// TODO Auto-generated method stub
//显示当前被选中的图片
image.setImageResource(imageIds[position]);
}
@Override
public void onNothingSelected(AdapterView> arg0) {
// TODO Auto-generated method stub
}
});
//添加列表被单击的监听器
grid.setOnItemClickListener(new OnItemClickListener()
{
@Override
public void onItemClick(AdapterView> parent, View view, int position,
long id) {
// TODO Auto-generated method stub
//显示被单击的图片
image.setImageResource(imageIds[position]);
}
});
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.main, menu);
return true;
}
}
调试效果