package com.my.android.tools;
import java.util.ArrayList;
import android.app.Activity;
import android.app.AlertDialog;
import android.content.DialogInterface;
import android.content.Intent;
import android.os.Bundle;
import android.util.Log;
import android.util.SparseBooleanArray;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.widget.ArrayAdapter;
import android.widget.ListView;
import android.widget.TextView;
/**
*
* @author yzw
*
*/
public class ContactTools extends Activity {
ListView m_listView;
TextView m_listViewTitle;
/**
* 菜单项:关于
*/
final int MENU_ABOUT_ID = Menu.FIRST;
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
// 获得UI对象
m_listView = (ListView) findViewById(R.id.listViewError);
m_listViewTitle = (TextView) findViewById(R.id.textViewTitle);
// 设置Label
String title = getResources()
.getString(R.string.list_of_error_contacts);
m_listViewTitle.setText(title + "(0)");
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
populateMeny(menu);
return super.onCreateOptionsMenu(menu);
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
return applyMenuChoice(item) || super.onOptionsItemSelected(item);
}
private boolean applyMenuChoice(MenuItem item) {
switch (item.getItemId()) {
case MENU_ABOUT_ID:
Intent i = new Intent(this, AboutDialog.class);
startActivity(i);
break;
default:
break;
}
return false;
}
private void populateMeny(Menu menu) {
menu.add(Menu.NONE, MENU_ABOUT_ID, Menu.NONE, R.string.about);
}
/**
* 处理按钮单击事件:检查
*
* @param view
*/
public void clickDetectContactsButton(View view) {
startActivityForResult(new Intent(this, DetectContactsError.class),
REQUEST_DETECT_CONTACT_ERROR);
}
static final int REQUEST_DETECT_CONTACT_ERROR = 0;
static final int REQUEST_UPDATE_DISPLAY_NAME = 1;
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
if (requestCode == REQUEST_DETECT_CONTACT_ERROR) {
// 扫描完毕的回调
if (resultCode == RESULT_OK) {
// 获取返回的数据
Bundle mydata = data.getExtras();
String[] err_names = mydata.getStringArray("ERROR_NAME_ARRAY");
// 显示数据
showInListView(err_names);
// 修改标题
String title = getResources().getString(
R.string.list_of_error_contacts);
m_listViewTitle.setText(title + "(" + err_names.length + ")");
}
} else if (requestCode == REQUEST_UPDATE_DISPLAY_NAME) {
showAlertDialog(getResources().getString(R.string.process_finish));
}
}
private void showInListView(Object[] data) {
// 显示有问题的项目
if (data == null) {
m_listView.setAdapter(new ArrayAdapter<Object>(m_listView
.getContext(),
android.R.layout.simple_list_item_multiple_choice,
new String[] {}));
} else {
m_listView.setAdapter(new ArrayAdapter<Object>(m_listView
.getContext(),
android.R.layout.simple_list_item_multiple_choice, data));
}
}
/**
* 显示一个确定对话框
*
* @param msg
* 需要显示的信息
*/
private void showAlertDialog(String msg) {
new AlertDialog.Builder(this)
.setTitle(R.string.info)
.setMessage(msg)
.setNeutralButton(R.string.ok,
new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog,
int which) {
}
}).show();
}
/**
* 准备更正通讯录
*/
private void prepareCorrectContacts() {
ArrayList<String> displayNames = getSelectDisplayName();
if (displayNames.size() > 0) {
// 将数据传送到Activity
Intent data = new Intent(this, ChangeDisplayName.class);
String[] names = (String[]) displayNames
.toArray(new String[displayNames.size()]);
data.putExtra("ERROR_NAME_ARRAY", names);
try {
startActivityForResult(
data,
REQUEST_UPDATE_DISPLAY_NAME);
} catch (Exception e) {
Log.d(getLocalClassName(), e.getMessage());
}
}
}
/**
* 获得用户选择的需要更正的显示名称
*
* @return 显示名称列表
*/
private ArrayList<String> getSelectDisplayName() {
SparseBooleanArray selectedData = m_listView.getCheckedItemPositions();
ArrayList<String> displayNames = new ArrayList<String>();
if (selectedData.size() > 0) {
// 找到用户选择的需要修改的名称,存入displayNames
for (int i = 0; i < selectedData.size(); i++) {
if (selectedData.valueAt(i)) {
displayNames.add((String) m_listView
.getItemAtPosition(selectedData.keyAt(i)));
}
}
}
return displayNames;
}
/**
* 处理事件:单击全选按钮
*
* @param view
*/
public void clickSelectAllButton(View view) {
for (int i = 0; i < m_listView.getCount(); i++) {
m_listView.setItemChecked(i, true);
}
}
/**
* 处理事件:单击全不选按钮
*
* @param view
*/
public void clickSelectNoneButton(View view) {
for (int i = 0; i < m_listView.getCount(); i++) {
m_listView.setItemChecked(i, false);
}
}
/**
* 处理按钮事件:改正
*
* @param view
*/
public void clickCorrectContactsButton(View view) {
ArrayList<String> displayNames = getSelectDisplayName();
if (displayNames.size() > 0) {
// 显示警告对话框
new AlertDialog.Builder(this)
.setTitle(R.string.warnning)
.setMessage(R.string.are_you_sure_update_contact)
.setNeutralButton(R.string.ok,
new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog,
int which) {
prepareCorrectContacts();
}
})
.setNegativeButton(R.string.cancel,
new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog,
int which) {
}
}).show();
}
}
}
没有合适的资源?快使用搜索试试~ 我知道了~
温馨提示
原来用WM的手机,通讯录很好用。转成Android后,费尽功夫终于将原来WM手机上的通讯录导入到Android手机后,发现显示名称不对,原来姓张名三的人,现在显示为“三 张”。这个问题太痛苦了,然后狂搜了一堆的软件,都不能很好解决问题。于是决定自己写一个这样的小工具。界面是丑陋些,但是希望能给各位喜欢Android的机油解决一些小问题。
资源推荐
资源详情
资源评论
收起资源包目录
ContactTools - 20110308.rar (36个子文件)
ContactTools - 20110308
.project 848B
default.properties 362B
bin
ContactTools.apk 24KB
com
my
android
tools
R$string.class 1KB
R$layout.class 490B
DetectContactsError.class 1KB
ChangeDisplayName.class 2KB
R$drawable.class 406B
ContactTools$2.class 913B
ChangeDisplayName$updateContacts.class 5KB
R.class 545B
AboutDialog.class 685B
DetectContactsError$scanContacts.class 5KB
ContactTools$1.class 869B
R$attr.class 346B
ContactTools$3.class 881B
R$id.class 793B
ContactTools.class 7KB
resources.ap_ 15KB
classes.dex 15KB
proguard.cfg 1KB
AndroidManifest.xml 1KB
src
com
my
android
tools
AboutDialog.java 413B
ContactTools.java 6KB
DetectContactsError.java 4KB
ChangeDisplayName.java 4KB
res
values
strings.xml 2KB
layout
about.xml 669B
detect.xml 761B
correct.xml 611B
main.xml 2KB
drawable-ldpi
icon.png 2KB
drawable-hdpi
icon.png 4KB
drawable-mdpi
icon.png 3KB
.classpath 280B
gen
com
my
android
tools
R.java 2KB
assets
共 36 条
- 1
rsn
- 粉丝: 0
- 资源: 1
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 安享智慧理财测试项目-使用数据库构造测试数据的代码
- 基于html实现蛋糕店网站页面源码.zip
- 疫情数据查看(sping boot)
- c++0101生日快乐
- 1碳交易机制下考虑需求响应的优化运行(20).zip
- 基于C/C++开发的单目控制机械臂的上位机程序+视觉识别和关节角反解+源码(高分优秀项目)
- 学生课设,C++数据结构实验,队列的实现,vs2022完整项目,包含完整代码,开箱即用
- max111111111
- 基于streamlit实现的企业物流分析平台功能物流数据可视化物流费用测算求解商品最优补货路径源码.zip
- 基于matlab仿真的puma560机械臂RRT路径规划算法+源码(高分优秀项目)
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功
- 1
- 2
前往页