部署到手机效果:
总共四个步骤
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.net.Uri; 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; case 10: Uri uri=Uri.parse("http://www.baidu.com"); Intent intent1=new Intent(Intent.ACTION_VIEW,uri); startActivity(intent1); 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 });