部署到手机效果:
总共四个步骤
1.准备数据源
2.新建适配器(SimpleAdapter)
3.GridView加载适配器
4.GirdView配置事件监听器
activity_main.xml
添加一个GridView控件,设置列数为3
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical"
android:gravity="center"
android:background="#000000"
>
<GridView
android:id="@+id/gridView"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:numColumns="3"
android:verticalSpacing="10dp"
>
</GridView>
</LinearLayout><?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:gravity="center"
android:orientation="vertical" >
<ImageView
android:id="@+id/image"
android:layout_width="50dp"
android:layout_height="50dp"
android:src="@drawable/ic_launcher"
/>
<TextView
android:id="@+id/text"
android:layout_marginTop="5dp"
android:layout_height="wrap_content"
android:layout_width="wrap_content"
android:textColor="#ffffff"
android:text="名称"
/>
</LinearLayout>
然后是MainActivity
package com.example.phonedesktop;
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.content.Intent;
import android.view.View;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemClickListener;
import android.widget.GridView;
import android.widget.SimpleAdapter;
import android.widget.Toast;
public class MainActivity extends Activity implements OnItemClickListener {
private int img[] = { 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 text[] = { "通讯录", "日历", "照相机", "时钟", "游戏", "短信", "铃声", "设置",
"语音", "天气", "浏览器", "视频" };
private List<Map<String, Object>> dataList = new ArrayList<Map<String, Object>>();
private SimpleAdapter adapter;
private GridView gridView;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
gridView = (GridView) findViewById(R.id.gridView);
//新建适配器
adapter = new SimpleAdapter(MainActivity.this, getData(),
R.layout.item, new String[] { "image", "text" }, new int[] {
R.id.image, R.id.text });
//GridView加载适配器
gridView.setAdapter(adapter);
//GridView事件监听器
gridView.setOnItemClickListener(this);
}
//准备数据源,泛型的map
private List<Map<String, Object>> getData() {
// TODO Auto-generated method stub
for (int i = 0; i < img.length; i++) {
Map<String, Object> map = new HashMap<String, Object>();
map.put("image", img[i]);
map.put("text", text[i]);
dataList.add(map);
}
return dataList;
}
//触发事件。只知道联系人的intent action ~~
@Override
public void onItemClick(AdapterView<?> parent, View view, int position,
long id) {
// TODO Auto-generated method stub
switch (position) {
case 0:
Intent intent = new Intent();
intent.setAction(Intent.ACTION_GET_CONTENT);
intent.setType("vnd.android.cursor.item/phone");
startActivity(intent);
break;
default :
Toast.makeText(this, "你选择的是" + text[position], Toast.LENGTH_LONG).show();
break;
}
}
}
adapter=new SimpleAdapter(context, data, resource, from, to)
比如文中
adapter = new SimpleAdapter(MainActivity.this, getData(),
R.layout.item, new String[] { "image", "text" }, new int[] {
R.id.image, R.id.text });
原文:http://blog.csdn.net/su20145104009/article/details/50707604