package com.yarin.android.MyContacts;
import android.app.Activity;
import android.content.ContentValues;
import android.content.Intent;
import android.database.Cursor;
import android.net.Uri;
import android.os.Bundle;
import android.util.Log;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.EditText;
public class ContactEditor extends Activity
{
private static final String TAG = "ContactEditor";
private static final int STATE_EDIT = 0;
private static final int STATE_INSERT = 1;
private static final int REVERT_ID = Menu.FIRST;
private static final int DISCARD_ID = Menu.FIRST + 1;
private static final int DELETE_ID = Menu.FIRST + 2;
private Cursor mCursor;
private int mState;
private Uri mUri;
private EditText nameText;
private EditText mobileText;
private EditText homeText;
private EditText addressText;
private EditText emailText;
private EditText blogText;
private Button okButton;
private Button cancelButton;
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
final Intent intent = getIntent();
final String action = intent.getAction();
Log.e(TAG + ":onCreate", action);
//根据action的不同进行不同的操作
//编辑联系人
if (Intent.ACTION_EDIT.equals(action))
{
mState = STATE_EDIT;
mUri = intent.getData();
}
else if (Intent.ACTION_INSERT.equals(action))
{
//添加新联系人
mState = STATE_INSERT;
mUri = getContentResolver().insert(intent.getData(), null);
if (mUri == null)
{
Log.e(TAG + ":onCreate", "Failed to insert new Contact into " + getIntent().getData());
finish();
return;
}
setResult(RESULT_OK, (new Intent()).setAction(mUri.toString()));
}
else
{
Log.e(TAG + ":onCreate", " unknown action");
finish();
return;
}
setContentView(R.layout.editorcontacts);
nameText = (EditText) findViewById(R.id.EditText01);
mobileText = (EditText) findViewById(R.id.EditText02);
homeText = (EditText) findViewById(R.id.EditText03);
addressText = (EditText) findViewById(R.id.EditText04);
emailText = (EditText) findViewById(R.id.EditText05);
blogText = (EditText) findViewById(R.id.EditText06);
okButton = (Button)findViewById(R.id.Button01);
cancelButton = (Button)findViewById(R.id.Button02);
okButton.setOnClickListener(new OnClickListener()
{
public void onClick(View v)
{
String text = nameText.getText().toString();
if(text.length()==0)
{
//如果没有输入东西,则不添加记录
setResult(RESULT_CANCELED);
deleteContact();
finish();
}
else
{
//添加一条数据
updateContact();
}
}
});
cancelButton.setOnClickListener(new OnClickListener()
{
public void onClick(View v)
{
if(mState == STATE_INSERT)
{
//不添加记录
setResult(RESULT_CANCELED);
deleteContact();
finish();
}
else
{
//恢复到编辑前的状态
backupContact();
}
}
});
Log.e(TAG+":onCreate", mUri.toString());
// 获得并保存原始联系人信息
mCursor = managedQuery(mUri, ContactColumn.PROJECTION, null, null, null);
mCursor.moveToFirst();
Log.e(TAG, "end of onCreate()");
}
protected void onResume()
{
super.onResume();
if (mCursor != null)
{
Log.e(TAG + ":onResume", "count:" + mCursor.getColumnCount());
// 读取并显示联系人信息
mCursor.moveToFirst();
if (mState == STATE_EDIT)
{
setTitle(getText(R.string.editor_user));
}
else if (mState == STATE_INSERT)
{
setTitle(getText(R.string.add_user));
}
String name = mCursor.getString(ContactColumn.NAME_COLUMN);
String moblie = mCursor.getString(ContactColumn.MOBILENUM_COLUMN);
String home = mCursor.getString(ContactColumn.HOMENUM_COLUMN);
String address = mCursor.getString(ContactColumn.ADDRESS_COLUMN);
String email = mCursor.getString(ContactColumn.EMAIL_COLUMN);
String blog = mCursor.getString(ContactColumn.BLOG_COLUMN);
nameText.setText(name);
mobileText.setText(moblie);
homeText.setText(home);
addressText.setText(address);
emailText.setText(email);
blogText.setText(blog);
}
else
{
setTitle("错误信息");
}
}
protected void onPause()
{
super.onPause();
if (mCursor != null)
{
String text = nameText.getText().toString();
if (text.length() == 0)
{
Log.e(TAG + ":onPause", "nameText is null ");
setResult(RESULT_CANCELED);
deleteContact();
// 更新信息
}
else
{
ContentValues values = new ContentValues();
values.put(ContactColumn.NAME, nameText.getText().toString());
values.put(ContactColumn.MOBILENUM, mobileText.getText().toString());
values.put(ContactColumn.HOMENUM, homeText.getText().toString());
values.put(ContactColumn.ADDRESS, addressText.getText().toString());
values.put(ContactColumn.EMAIL, emailText.getText().toString());
values.put(ContactColumn.BLOG, blogText.getText().toString());
Log.e(TAG + ":onPause", mUri.toString());
Log.e(TAG + ":onPause", values.toString());
getContentResolver().update(mUri, values, null, null);
}
}
}
public boolean onCreateOptionsMenu(Menu menu)
{
super.onCreateOptionsMenu(menu);
if (mState == STATE_EDIT)
{
menu.add(0, REVERT_ID, 0, R.string.revert)
.setShortcut('0', 'r')
.setIcon(R.drawable.listuser);
menu.add(0, DELETE_ID, 0, R.string.delete_user)
.setShortcut('0', 'f')
.setIcon(R.drawable.remove);
}
else
{
menu.add(0, DISCARD_ID, 0, R.string.revert)
.setShortcut('0', 'd')
.setIcon(R.drawable.listuser);
}
return true;
}
//菜单处理
@Override
public boolean onOptionsItemSelected(MenuItem item)
{
switch (item.getItemId())
{
case DELETE_ID:
deleteContact();
finish();
break;
case DISCARD_ID:
cancelContact();
break;
case REVERT_ID:
backupContact();
break;
}
return super.onOptionsItemSelected(item);
}
//删除联系人信息
private void deleteContact()
{
if (mCursor != null)
{
mCursor.close();
mCursor = null;
getContentResolver().delete(mUri, null, null);
nameText.setText("");
}
}
//丢弃信息
private void cancelContact()
{
if (mCursor != null)
{
deleteContact();
}
setResult(RESULT_CANCELED);
finish();
}
//更新 变更的信息
private void updateContact()
{
if (mCursor != null)
{
mCursor.close();
mCursor = null;
ContentValues values = new ContentValues();
values.put(ContactColumn.NAME, nameText.getText().toString());
values.put(ContactColumn.MOBILENUM, mobileText.getText().toString());
values.put(ContactColumn.HOMENUM, homeText.getText().toString());
values.put(ContactColumn.ADDRESS, addressText.getText().toString());
values.put(ContactColumn.EMAIL, emailText.getText().toString());
values.put(ContactColumn.BLOG, blogText.getText().toString());
Log.e(TAG+":onPause",mUri.toString());
Log.e(TAG+":onPause",values.toString());
getContentResolver().update(mUri, values, null, null);
没有合适的资源?快使用搜索试试~ 我知道了~
温馨提示
Android MyContacts通讯录源码.zip项目安卓应用源码下载Android MyContacts通讯录源码.zip项目安卓应用源码下载 1.适合学生毕业设计研究参考 2.适合个人学习研究参考 3.适合公司开发项目技术参考
资源推荐
资源详情
资源评论
收起资源包目录
Android MyContacts通讯录源码.zip (45个子文件)
Android MyContacts通讯录源码
Android MyContacts通讯录源码
1_120828193243_2.png 37KB
1_120828193243_1.png 40KB
1_120828193243_3.png 35KB
Android MyContacts通讯录源码
MyContacts通讯录
bin
classes.dex 22KB
MyContacts.apk 60KB
com
yarin
android
MyContacts
R$layout.class 466B
R$id.class 1KB
R$drawable.class 700B
ContactView.class 4KB
ContactEditor$2.class 1KB
R$attr.class 370B
R.class 601B
DBHelper.class 1KB
R$string.class 920B
ContactEditor$1.class 1KB
ContactColumn.class 1KB
ContactEditor.class 7KB
MyContacts.class 7KB
ContactsProvider.class 7KB
resources.ap_ 48KB
res
drawable
listuser.png 3KB
viewuser.png 3KB
sendsms.png 4KB
icon.png 5KB
exit.png 5KB
calluser.png 5KB
edituser.png 3KB
bg.jpg 2KB
remove.png 5KB
add.png 5KB
values
strings.xml 821B
layout
editorcontacts.xml 4KB
viewuser.xml 3KB
assets
default.properties 449B
gen
com
yarin
android
MyContacts
R.java 3KB
src
com
yarin
android
MyContacts
ContactColumn.java 1011B
MyContacts.java 5KB
DBHelper.java 1KB
ContactView.java 4KB
ContactEditor.java 9KB
ContactsProvider.java 6KB
.project 846B
Thumbs.db 7KB
.classpath 280B
AndroidManifest.xml 2KB
共 45 条
- 1
资源评论
yxkfw
- 粉丝: 75
- 资源: 2万+
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 三菱PLC例程源码fx2nplc与三台丹佛斯变频器458通讯定位.定尺源程序
- 三菱PLC例程源码FX2NPLC与安川G7变频器通讯(原创)有注释,MEMOBUS的写方式
- 三菱PLC例程源码FX2NPLC与A700变频器RUT通讯
- 小智搜搜-必备搜索工具,搜索快启更胜一筹
- 三菱PLC例程源码FX2NPLC和变频器,F930通讯控制的程序有注解拉丝机程序
- 三菱PLC例程源码FX2NPLC+2AD+4ADTC+2DA+电阻尺+编码器+PID温控
- 安装和配置指引,通俗易懂
- 三菱PLC例程源码FX2NPLC+2AD+4ADTC+2DA+电阻尺+编码器+PID温控完整注释程式+UG330人机
- 三菱PLC例程源码FX2N-INV通讯程序
- 三菱PLC例程源码FX2N-INV通讯
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功