編輯:關於Android編程
public void readContact(View view){ //利用內容提供者獲取聯系人的數據庫 Uri uri=Uri.parse("content://com.android.contacts/raw_contacts"); Uri dataUri=Uri.parse("content://com.android.contacts/data"); //1.查詢row_content表裡面所有聯系人的id Cursor cursor = getContentResolver().query(uri, new String[]{"contact_id"}, null, null, "_id desc"); StringBuilder sb=new StringBuilder(); while (cursor.moveToNext()) { String id = cursor.getString(0); //判斷這個聯系人是否被刪除 if(TextUtils.isEmpty(id))continue; System.out.println(id); //2.根據聯系人查詢data表裡面的數據 Cursor datacursor = getContentResolver().query(dataUri, /*new String[]{"data1","mimetype"}*/null, "contact_id=?", new String[]{id}, null); while (datacursor.moveToNext()) { String data1 = datacursor.getString(datacursor.getColumnIndex("data1")); String mimetype = datacursor.getString(datacursor.getColumnIndex("mimetype")); if("vnd.android.cursor.item/phone_v2".equals(mimetype)){ sb.append("電話:"+data1); }else if("vnd.android.cursor.item/email_v2".equals(mimetype)){ sb.append("郵箱:"+data1); }else if("vnd.android.cursor.item/name".equals(mimetype)){ sb.append("姓名:"+data1); } } sb.append("---------------------------\n"); datacursor.close(); } cursor.close(); tv_show.setText(sb.toString()); }
java代碼
public void addContact(View view){ //添加聯系人信息 EditText et_name = (EditText) findViewById(R.id.et_name); EditText et_phone = (EditText) findViewById(R.id.et_phone); EditText et_email = (EditText) findViewById(R.id.et_email); //利用內容提供者獲取聯系人的數據庫 Uri uri=Uri.parse("content://com.android.contacts/raw_contacts"); Uri dataUri=Uri.parse("content://com.android.contacts/data"); //1.添加raw_contact表一個聯系人的id //新的聯系人的id=查詢最後一個聯系人的id+1; Cursor cursor = getContentResolver().query(uri, new String[]{"_id"}, null, null, null); cursor.moveToLast(); int lastid=cursor.getInt(0); int id=lastid+1; ContentValues values=new ContentValues(); values.put("contact_id", id); getContentResolver().insert(uri, values); //2.向data表添加數據 姓名 ContentValues datavalues=new ContentValues(); datavalues.put("raw_contact_id", id); datavalues.put("mimetype", "vnd.android.cursor.item/name"); datavalues.put("data1", et_name.getText().toString()); getContentResolver().insert(dataUri, datavalues); // 郵箱 ContentValues emailalues=new ContentValues(); emailalues.put("raw_contact_id", id); emailalues.put("mimetype", "vnd.android.cursor.item/email_v2"); emailalues.put("data1", et_email.getText().toString()); getContentResolver().insert(dataUri, emailalues); }
上一篇介紹了Animation動畫其一:Tween補間動畫。 這篇文章接下來介紹Animation另一種動畫形式:Frame逐幀動畫。 Frame動畫是一系列圖片按照一定
Android開源框架庫分類,挑選出最常用,最實用的開源項目,本篇主要介紹的是優秀開源框架庫和項目,UI個性化控件會獨立介紹。UI個性化控件Dependency Inje
一、大致界面介紹:圖1圖2圖3圖4圖1:手勢密碼繪制界面 【主要是繪制上方的9個提示圖標和9個宮格密碼圖標】圖2:設置手勢密碼 【監聽手勢的輸入,TouchEvent的事
ListView 簡介ListView 是安卓裡常用的控件, 本文介紹一下常用用法,以及優化等方法1、改寫activity_main.xml<LinearLayou