要讀取聯絡人資料記得Manifest.xml中要加入
加入OnItemClickListener讓user點到的item名稱顯示在Title列
GridViewActivity.java
package com.tsots.GridView_HashMap; import java.util.ArrayList; import java.util.HashMap; import android.app.Activity; import android.database.Cursor; import android.net.Uri; import android.os.Bundle; import android.provider.ContactsContract; import android.provider.ContactsContract.Contacts; import android.view.View; import android.widget.AdapterView; import android.widget.GridView; import android.widget.SimpleAdapter; import android.widget.AdapterView.OnItemClickListener; public class GridViewActivity extends Activity { GridView g1; String str1; ArrayList> lstImageItem; /** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); g1 = (GridView) findViewById (R.id.gridview1); Uri contacts = Contacts.CONTENT_URI; //陣列內容: 從contact撈出有顯示名稱的資料 String[] selectColumn = new String[] {ContactsContract.Contacts._ID, ContactsContract.Contacts.DISPLAY_NAME}; Cursor cur = getContentResolver().query( contacts, selectColumn, null, null, null ); try { if (cur.moveToFirst()) { int displayNameColumn = cur.getColumnIndex(ContactsContract.Contacts.DISPLAY_NAME); lstImageItem = new ArrayList >(); do { //用HashMap加入圖片與文字訊息 HashMap map = new HashMap (); map.put("ItemImage", R.drawable.icon); map.put("ItemText", String.valueOf(cur.getString(displayNameColumn))); lstImageItem.add(map); }while(cur.moveToNext()); SimpleAdapter saImageItems = new SimpleAdapter(this, lstImageItem, R.layout.night_item,//ImageView*1, TextView*1 new String[] {"ItemImage","ItemText"}, new int[] {R.id.ItemImage,R.id.ItemText} ); //每行3欄資料 g1.setNumColumns(3); g1.setAdapter(saImageItems); class ItemClickListener implements OnItemClickListener { public void onItemClick(AdapterView arg0,//The AdapterView where the click happened View arg1,//The view within the AdapterView that was clicked int arg2,//The position of the view in the adapter long arg3//The row id of the item that was clicked ) { HashMap item = (HashMap ) arg0.getItemAtPosition(arg2); setTitle((String)item.get("ItemText")); } } g1.setOnItemClickListener(new ItemClickListener()); } } finally { cur.close(); } } }//
沒有留言:
張貼留言