public class MainActivity extends ActionBarActivity implements OnItemClickListener{
private GridView gridview;
SimpleAdapter adapter;
int icon[]={R.drawable.caidan1,R.drawable.caidan2,R.drawable.caidan3,
R.drawable.caidan4,R.drawable.caidan5,R.drawable.caidan6,R.drawable.caidan7,R.drawable.caidan8};
String name[]={"点餐","转台","注销","设置","更新","结账","查台","并台"};
List<Map<String,Object>>listdata;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
requestWindowFeature(Window.FEATURE_NO_TITLE);
setContentView(R.layout.activity_main);
gridview=(GridView) findViewById(R.id.gridView1);
//创建数据源
listdata=new ArrayList<Map<String,Object>>();
//创建适配器
adapter=new SimpleAdapter(this, getdata(), R.layout.item, new String[]{"image","text"}, new int[]{R.id.imageView1,R.id.textView1});
gridview.setAdapter(adapter);
//注册监听
gridview.setOnItemClickListener(this);
}
public List<Map<String,Object>> getdata()
{
for(int i=0;i<icon.length;i++)
{
Map<String,Object> map=new HashMap<>();
map.put("image", icon[i]);
map.put("text", name[i]);
listdata.add(map);
}
return listdata;
}
@Override
public void onItemClick(AdapterView<?> arg0, View view, int position, long id) {
// TODO Auto-generated method stub
//position位置从0开始计数,刚好和name[]对应
Toast.makeText(this, "点击了"+name[position], Toast.LENGTH_SHORT).show();
}
}
GridView的常用属性:
android:horizontalSpacing="10dp"//列距
android:verticalSpacing="10dp"//行距
android:numColumns="3"//每行显示多少图标
item布局文件
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
android:background="#00000000"
android:gravity="center"
>
<ImageView
android:id="@+id/imageView1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@drawable/ic_launcher" />
<TextView
android:id="@+id/textView1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="文本"
android:textColor="#ffffff" />
</LinearLayout>