Android实现新增及编辑联系人的方法
本文实例介绍了Android开发中对联系人修改、新增联系人的方法,通过本实例代码可实现添加联系人、编辑修改联系人,新增联系人和更新联系人等操作,操作主要放在线程中处理,并且在操作的过程中,显示圆形进度条,在Android系统中,这是种比较常见的进度条风格。
具体功能代码如下所示:
packagehuahua.contactsfragment;
importjava.util.Collections;
importhuahua.huahuacontacts.R;
importhuahua.huahuacontacts.Utils;
importandroid.app.Activity;
importandroid.app.ProgressDialog;
importandroid.content.ContentResolver;
importandroid.content.ContentUris;
importandroid.content.ContentValues;
importandroid.content.Intent;
importandroid.net.Uri;
importandroid.os.AsyncTask;
importandroid.os.Bundle;
importandroid.provider.ContactsContract;
importandroid.provider.ContactsContract.CommonDataKinds.Phone;
importandroid.provider.ContactsContract.CommonDataKinds.StructuredName;
importandroid.provider.ContactsContract.RawContacts;
importandroid.provider.ContactsContract.RawContacts.Data;
importandroid.util.Log;
importandroid.view.View;
importandroid.view.Window;
importandroid.widget.Button;
importandroid.widget.EditText;
importandroid.widget.TextView;
importandroid.widget.Toast;
publicclassAddContactsActivityextendsActivity{
privateButtonm_SaveBtn;
privateEditTextm_EditName;
privateEditTextm_EditNum;
privateTextViewm_TextTitle;
privateStringm_ContactId;
privateintm_Type;
ProgressDialogm_dialogLoading;
@Override
protectedvoidonCreate(BundlesavedInstanceState){
super.onCreate(savedInstanceState);
this.requestWindowFeature(Window.FEATURE_NO_TITLE);
setContentView(R.layout.add_contacts);
Intentintent=getIntent();
Bundlebundle=intent.getBundleExtra("person");
m_TextTitle=(TextView)findViewById(R.id.text_title);
m_EditName=(EditText)findViewById(R.id.edit_name);
m_EditNum=(EditText)findViewById(R.id.edit_num);
m_Type=bundle.getInt("tpye");
m_EditName.setText(bundle.getString("name"));
m_EditNum.setText(bundle.getString("number"));
if(m_Type==0)//新增联系人
{
m_TextTitle.setText("新增联系人");
}
elseif(m_Type==1)//编辑联系人
{
m_ContactId=bundle.getString("id");
m_TextTitle.setText("编辑联系人");
}
m_SaveBtn=(Button)findViewById(R.id.btn_save_contact);
m_SaveBtn.setOnClickListener(newView.OnClickListener(){
@Override
publicvoidonClick(Viewv){
if("".equals(m_EditName.getText().toString()))
{
Toast.makeText(AddContactsActivity.this,"请输入联系人姓名",Toast.LENGTH_SHORT).show();
}
elseif("".equals(m_EditNum.getText().toString()))
{
Toast.makeText(AddContactsActivity.this,"请输入联系人电话",Toast.LENGTH_SHORT).show();
}
elseif(m_Type==0)
{
//新增联系人操作,放在线程中处理
newSaveContactTask().execute();
}
elseif(m_Type==1)
{
//更新联系人操作,放在线程中处理
newChangeContactTask().execute();
}
}
});
}
classSaveContactTaskextendsAsyncTask<Void,Integer,Void>{
@Override
protectedVoiddoInBackground(Void...params){
Utils.AddContact(m_EditName.getText().toString(),m_EditNum.getText().toString());
returnnull;
}
@Override
protectedvoidonPostExecute(Voidresult){
if(m_dialogLoading!=null)
{
m_dialogLoading.dismiss();
finish();
}
}
@Override
protectedvoidonPreExecute(){
m_dialogLoading=newProgressDialog(AddContactsActivity.this);
m_dialogLoading.setProgressStyle(ProgressDialog.STYLE_SPINNER);//设置风格为圆形进度条
m_dialogLoading.setMessage("正在保存联系人");
m_dialogLoading.setCancelable(false);
m_dialogLoading.show();
}
@Override
protectedvoidonProgressUpdate(Integer...values){
}
}
classChangeContactTaskextendsAsyncTask<Void,Integer,Void>{
@Override
protectedVoiddoInBackground(Void...params){
Utils.ChangeContact(m_EditName.getText().toString(),m_EditNum.getText().toString(),m_ContactId);
returnnull;
}
@Override
protectedvoidonPostExecute(Voidresult){
if(m_dialogLoading!=null)
{
m_dialogLoading.dismiss();
finish();
}
}
@Override
protectedvoidonPreExecute(){
m_dialogLoading=newProgressDialog(AddContactsActivity.this);
m_dialogLoading.setProgressStyle(ProgressDialog.STYLE_SPINNER);//设置风格为圆形进度条
m_dialogLoading.setMessage("正在保存联系人");
m_dialogLoading.setCancelable(false);
m_dialogLoading.show();
}
@Override
protectedvoidonProgressUpdate(Integer...values){
}
}
}