編輯:關於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);
}
Android Animation 動畫Demo(Frame逐幀動畫)
上一篇介紹了Animation動畫其一:Tween補間動畫。 這篇文章接下來介紹Animation另一種動畫形式:Frame逐幀動畫。 Frame動畫是一系列圖片按照一定
Android中常用的優秀開源框架
Android開源框架庫分類,挑選出最常用,最實用的開源項目,本篇主要介紹的是優秀開源框架庫和項目,UI個性化控件會獨立介紹。UI個性化控件Dependency Inje
Android手勢密碼的實現
一、大致界面介紹:圖1圖2圖3圖4圖1:手勢密碼繪制界面 【主要是繪制上方的9個提示圖標和9個宮格密碼圖標】圖2:設置手勢密碼 【監聽手勢的輸入,TouchEvent的事
深入淺出學習Android ListView基礎
ListView 簡介ListView 是安卓裡常用的控件, 本文介紹一下常用用法,以及優化等方法1、改寫activity_main.xml<LinearLayou