編輯:關於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) {
}
}
}
Android Multimedia框架總結(八)Stagefright框架之AwesomePlayer及數據解析器
前言:前面一篇分析了mediaplayerservice及MediaPlayer中的CS模型,但是對於如何能把數據解析出來,渲染到最終的SurfaceView上顯示,並且
Android實現實時滑動ViewPager的2種方式
先看看效果圖:activity_main.xml <RelativeLayout xmlns:android=http://schemas.android
Android APP數字解鎖實例詳解
Android APP數字上鎖最近抽時間做了下數字解鎖的功能,手機有數字解鎖,App也可以做到,避免某些應用隱私洩漏,一下就是實現效果圖:序言:這兩天老大給了個任務,說是
用draw9patch.bat繪制的氣泡圖片用在Android程序中有黑線
安卓開發,對話消息的氣泡框處理。如下圖所示:問題描述:1.邊緣有黑線。2.氣泡雖然能夠根據內容長短自由伸縮,但是並不能讓內容顯示在氣泡內部。 問題解決後的截圖: