使用Contact數據模型來批量插入聯系人主要需要contact數據模型的以下兩文件:
com.Android.contacts.model下的:
EntitySet.java
EntityDelta.java
以上文件的源碼地址可以在http://hi-android.info/src/找到。
EntitySet在Android 4.0中已經被改名為EntityDeltaList.
我自己的代碼在MainActivity.java,DialogResolver.java和ContactPersistTask.java。
注意:需要在AndroidManifest.xml加入寫contacts的權限。
寫contacts的權限為:
<uses-permission android:name="android.permission.READ_CONTACTS" />
讀contacts的權限為:
<uses-permission android:name="android.permission.WRITE_CONTACTS" />文件1
MainActivity.java文件
package com.teleca.robin.Contact;
import android.app.Activity;
import android.app.Dialog;
import android.content.Context;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Toast;
public class MainActivity extends Activity implements DialogResolver{
final static String TAG="robin";
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
Button button = (Button) findViewById(R.id.Button01);
OnClickListener listener = new OnClickListener() {
public void onClick(View v) {
doAddAction();
}
};
button.setOnClickListener(listener);
editText=(EditText)findViewById(R.id.editText);
editText.setText("100");
}
EditText editText;
void doAddAction() {
String content=editText.getText().toString();
int count=0;
try{
count=Integer.parseInt(content);
}catch(NumberFormatException e)
{
Toast.makeText(this, "please input a Number for Contacts count!",
Toast.LENGTH_SHORT).show();
}
final ContactPersistTask task = new ContactPersistTask(this);
task.execute(count);
}
public void showDialog(Dialog dialog)
{
dialog.show();
}
public void dismissDialog(Dialog dialog)
{
dialog.dismiss();
}
public Activity getActivity(){
return this;
}
}
文件2
DialogResolver.java文件
package com.teleca.robin.Contact;
import android.app.Dialog;
public interface DialogResolver{
public void showDialog(Dialog dialog);
public void dismissDialog(Dialog dialog);
}
注意:對於任何實現了DialogResolver的類,要求該類必須是Activity。
文件3
布局文件main.xml文件
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
>
<TextView
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="@string/hello"
/>
<EditText
android:id="@+id/editText"
android:layout_width="100dp"
android:layout_height="wrap_content"
/>
<Button android:text="@string/add" android:id="@+id/Button01" android:layout_width="wrap_content" android:layout_height="wrap_content"></Button>
</LinearLayout>
文件4
strings.xml文件
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="hello">please input the number to add for contact!</string>
<string name="app_name">ContactGenerator</string>
<string name="add">add</string>
<string name="insert_title">insert contact</string>
<string name="insert_tip">waiting</string>
</resources>