欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  移动技术

Android实现新增及编辑联系人的方法

程序员文章站 2022-05-27 10:22:06
本文实例介绍了android开发中对联系人修改、新增联系人的方法,通过本实例代码可实现添加联系人、编辑修改联系人,新增联系人和更新联系人等操作,操作主要放在线程中处理,并且...

本文实例介绍了android开发中对联系人修改、新增联系人的方法,通过本实例代码可实现添加联系人、编辑修改联系人,新增联系人和更新联系人等操作,操作主要放在线程中处理,并且在操作的过程中,显示圆形进度条,在android系统中,这是种比较常见的进度条风格。

具体功能代码如下所示:

package huahua.contactsfragment;
import java.util.collections;
import huahua.huahuacontacts.r;
import huahua.huahuacontacts.utils;
import android.app.activity;
import android.app.progressdialog;
import android.content.contentresolver;
import android.content.contenturis;
import android.content.contentvalues;
import android.content.intent;
import android.net.uri;
import android.os.asynctask;
import android.os.bundle;
import android.provider.contactscontract;
import android.provider.contactscontract.commondatakinds.phone;
import android.provider.contactscontract.commondatakinds.structuredname;
import android.provider.contactscontract.rawcontacts;
import android.provider.contactscontract.rawcontacts.data;
import android.util.log;
import android.view.view;
import android.view.window;
import android.widget.button;
import android.widget.edittext;
import android.widget.textview;
import android.widget.toast;
public class addcontactsactivity extends activity{
 private button m_savebtn;
 private edittext m_editname;
 private edittext m_editnum;
 private textview m_texttitle;
 private string m_contactid;
 private int m_type;
 progressdialog m_dialogloading;
 @override
 protected void oncreate(bundle savedinstancestate) {
 super.oncreate(savedinstancestate);
 this.requestwindowfeature(window.feature_no_title);
 setcontentview(r.layout.add_contacts);
 intent intent = getintent();
 bundle bundle = 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("新增联系人");
 }
 else if(m_type == 1)//编辑联系人
 {
  m_contactid = bundle.getstring("id");
  m_texttitle.settext("编辑联系人");
 }
 m_savebtn = (button)findviewbyid(r.id.btn_save_contact);
 m_savebtn.setonclicklistener(new view.onclicklistener() {
  @override
  public void onclick(view v) {
  if("".equals(m_editname.gettext().tostring()))
  {
   toast.maketext(addcontactsactivity.this, "请输入联系人姓名", toast.length_short).show();
  }
  else if("".equals(m_editnum.gettext().tostring()))
  {
   toast.maketext(addcontactsactivity.this, "请输入联系人电话", toast.length_short).show();
  }
  else if(m_type == 0)
  {
   //新增联系人操作,放在线程中处理
   new savecontacttask().execute();
  }
  else if(m_type == 1)
  {
   //更新联系人操作,放在线程中处理
   new changecontacttask().execute();
  }
  }
 });
 }
 class savecontacttask extends asynctask<void, integer, void>{
 @override
 protected void doinbackground(void... params) {
  utils.addcontact(m_editname.gettext().tostring(), m_editnum.gettext().tostring());
  return null;
 }
 @override
 protected void onpostexecute(void result) {
  if(m_dialogloading!= null)
  {
  m_dialogloading.dismiss();
  finish();
  }
 }
 @override
 protected void onpreexecute() {
  m_dialogloading = new progressdialog(addcontactsactivity.this);
     m_dialogloading.setprogressstyle(progressdialog.style_spinner);//设置风格为圆形进度条
     m_dialogloading.setmessage("正在保存联系人");
     m_dialogloading.setcancelable(false);
      m_dialogloading.show();
 }
 @override
 protected void onprogressupdate(integer... values) {
 }
 }
 class changecontacttask extends asynctask<void, integer, void>{
 @override
 protected void doinbackground(void... params) {
  utils.changecontact(m_editname.gettext().tostring(), m_editnum.gettext().tostring(),m_contactid);
  return null;
 }
 @override
 protected void onpostexecute(void result) {
  if(m_dialogloading!= null)
  {
  m_dialogloading.dismiss();
  finish();
  }
 }
 @override
 protected void onpreexecute() {
  m_dialogloading = new progressdialog(addcontactsactivity.this);
     m_dialogloading.setprogressstyle(progressdialog.style_spinner);//设置风格为圆形进度条
     m_dialogloading.setmessage("正在保存联系人");
     m_dialogloading.setcancelable(false);
      m_dialogloading.show();
 }
 @override
 protected void onprogressupdate(integer... values) {
 }
 }
}