package com.example.sharingcontact;
import java.io.*;
import java.net.Socket;
import java.util.ArrayList;
import java.util.HashMap;
import com.example.sharingcontact.R;
import com.example.sharingcontact.db.ContactInfo;
import com.example.sharingcontact.db.Contacts;
import com.example.sharingcontact.db.DatabaseOperation;
import com.example.sharingcontact.ExitDialog;
import android.opengl.Visibility;
import android.os.Bundle;
import android.os.Handler;
import android.os.Message;
import android.provider.ContactsContract;
import android.provider.ContactsContract.PhoneLookup;
import android.app.Activity;
import android.app.AlertDialog;
import android.app.ProgressDialog;
import android.content.ContentResolver;
import android.content.DialogInterface;
import android.content.Intent;
import android.database.Cursor;
import android.graphics.Color;
import android.graphics.drawable.Drawable;
import android.text.Editable;
import android.text.SpannableStringBuilder;
import android.text.TextWatcher;
import android.text.style.UpdateLayout;
import android.util.Log;
import android.view.Gravity;
import android.view.KeyEvent;
import android.view.LayoutInflater;
import android.view.Menu;
import android.view.View;
import android.view.Window;
import android.view.View.OnClickListener;
import android.view.View.OnKeyListener;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemClickListener;
import android.widget.AdapterView.OnItemLongClickListener;
import android.widget.Button;
import android.widget.CheckBox;
import android.widget.EditText;
import android.widget.GridView;
import android.widget.ImageView;
import android.widget.LinearLayout;
import android.widget.ListAdapter;
import android.widget.ListView;
import android.widget.ProgressBar;
import android.widget.RelativeLayout;
import android.widget.SimpleAdapter;
import android.widget.TextView;
import android.widget.Toast;
public class MainActivity extends Activity {
private static final String TAG = "MainActivity";
TextView tv_title;
GridView gv_menu;
ListView lv;
ArrayList<HashMap<String,String>> list;
Contacts userlist;
SimpleAdapter adapter;
SimpleAdapter searchadapter;
EditText et_search;
int ifsearch=0;
LinearLayout searchLinearout;
Button localserach;
Button onlineserach;
int len;
temp[] result;
String condition;//搜索框内容
//同步对话框
AlertDialog.Builder builder;
EditText et_phone;
CheckBox cb_share;
EditText et_password;
String phone;
String password;
int share;
//更多选项 的对话框
AlertDialog mainMenuDialog;
//更多选项的菜单
View mainMenuView;
GridView gv_more;
AlertDialog confirmDialog;
ProgressDialog progressDialog;
//存储标记条目的_id号
ArrayList<Integer> deleteId;
ContactInfo[] mycontact;
contact[] getcontact;
@Override
protected void onResume() {
super.onResume();
loadUserList();
}
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
// setContentView(R.layout.main);
//设置title格式
requestWindowFeature(Window.FEATURE_CUSTOM_TITLE);
setContentView(R.layout.main);
getWindow().setFeatureInt(Window.FEATURE_CUSTOM_TITLE, R.layout.titleitem);
Button btn_titlecancle = (Button) findViewById(R.id.btn_titlecancle);
Button btn_titlesave = (Button) findViewById(R.id.btn_titlesave);
final TextView tv_title = (TextView) findViewById(R.id.tv_title);
btn_titlecancle.setVisibility(View.GONE);
btn_titlesave.setVisibility(View.GONE);
tv_title.setText("联系人列表");
userlist = new Contacts(MainActivity.this);
loadMenu();
lv =(ListView) findViewById(R.id.lv_userlist);
loadUserList();
//单击LISTVIEW打开修改界面
lv.setOnItemClickListener(new OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> arg0, View arg1, int arg2,
long arg3) {
HashMap item = (HashMap)arg0.getItemAtPosition(arg2);
Intent intent = new Intent(MainActivity.this, ModifyActivity.class);
ContactInfo user = new ContactInfo();
Object kk= item.get("id");
// Log.d("test", (String) item.get("id"));
if( item.get("id") != null){
user.ContactID = Integer.parseInt(String.valueOf(item.get("id")));
}else{
user.ContactID = 5;
}
user.Name = String.valueOf(item.get("name"));
user.SubName = String.valueOf(item.get("nickname"));
user.MobileTel = String.valueOf(item.get("phone"));
user.FixedTel = String.valueOf(item.get("telephone"));
user.Company = String.valueOf(item.get("company"));
user.Address = String.valueOf(item.get("address"));
user.ImageId = Integer.parseInt(String.valueOf(item.get("imageid")));
intent.putExtra("user", user);
if(searchLinearout != null && searchLinearout.getVisibility()==View.VISIBLE) {
searchLinearout.setVisibility(View.GONE);
}
/*将arg2作为请求码传过去 用于标识修改项的位置*/
startActivityForResult(intent, arg2);
}
});
//删除多项标记
lv.setCacheColorHint(Color.TRANSPARENT); //设置ListView的背景为透明
lv.setOnItemLongClickListener(new OnItemLongClickListener(){
@Override
public boolean onItemLongClick(AdapterView<?> arg0, View arg1,
int arg2, long arg3) {
if(deleteId == null) {
deleteId = new ArrayList<Integer>();
}
HashMap item = (HashMap)arg0.getItemAtPosition(arg2);
Integer id = Integer.parseInt(String.valueOf(item.get("id")));
RelativeLayout r = (RelativeLayout)arg1;
ImageView markedView = (ImageView)r.getChildAt(2);
if(markedView.getVisibility() == View.VISIBLE) {
markedView.setVisibility(View.GONE);
deleteId.remove(id);
} else {
markedView.setVisibility(View.VISIBLE);
deleteId.add(id);
}
Log.d("delete", String.valueOf(id));
Log.d("delete", String.valueOf(deleteId.size()));
return true;
}
});
loadsearch();
onlineserach = (Button) findViewById(R.id.btn_onlinesearch);
onlineserach.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View arg0) {
// TODO Auto-generated method stub
et_search = (EditText) findViewById(R.id.et_search);
final String online_name = et_search.getText().toString();
final String online_phone = userlist.readInfoInServer();
new Thread(new Runnable(){
public void run(){
testjava onlinesearch = new testjava();
result = onlinesearch.query(online_phone, online_name);
len = result.length;
}
}).start();
list = new ArrayList<HashMap<String,String>>();
int k=0;
while(k<len){
ContactInfo infoInsert = new ContactInfo(result[k].name, "", result[k].tel, "", "", "",R.drawable.image15);
// userlist.insertContacts(infoInsert);
HashMap<String,String> item = new HashMap();
item.put("name", result[k].name);
item.put("phone", result[k].tel);
item.put("imageid", ""+R.drawable.image15);
list.add(item);
k++;
}
lv.setAdapter(null);
SimpleAdapter onlinesearchadapter = new SimpleAdapter(
MainActivity.this,
list,
R.layout.listitem,
new String[]{"imageid","name","phone"},
new int[]{R.id.user_image,R.id.tv_name,R.id.tv_mobilephone});
lv.setAdapter(onlinesearchadapter); //将整合好的adapter交给listview,显示给用户看
tv_title.setText( "共查到 " + len+" 条记录");
}
});
}
private void loadUserList(){
Log.d(TAG,"loadUserList");
//userlist = new Contacts(MainActivity.this);
ArrayList list = new ArrayList<HashMap>();
ContactInfo[] userinfo = userlist.readContacts();
if(userinfo != null ){//首次启动时,需要判断数据库是否为空
for(ContactInfo info : userinfo){
Log.d(TAG, info.toString());
}
//将ContactInfo[]转换成 list格式;
int length = userinfo.length;
int k=0;
while(k<length) {
HashMap item = new HashMap();
item.put("name", userinfo[k].Name);
item.put("nickname", userinfo[k].SubName);
item.put("phone", userinfo[k].MobileTel);
item.put("telephone", userinfo[k].FixedTel);
item.put("company", userinfo[k].Company);
item.put("address", userinfo[k].Address);
item.put("imageid", userinfo[k].ImageId);
item.put("id", userinfo[k].ContactID);
list.add(item);
k++;
}
if(length == 0){
setTitle("没有查到任何数据");
}else{
adapter = new SimpleAdapter(this,
list,
R.layout.listitem,
new String[]{"imageid","name","phone"},
new int[]{R.id.user_image,R.id.tv_name,R.id.tv_mobilephone});
lv.setAdapter(adapter);
}
}
}
public boolean onKeyDown(int keyCode, KeyEvent event){
Log.d(TAG,"onKeyDown, keyCode = " + keyCode);
if(keyCode == KeyEvent.KEYCODE_MENU){
if(gv_menu == null){
loadMenu();
}
if(gv_menu.getVisibility() == View.GONE){
gv_menu.setVisibility(View.VISIBLE);
}else{
gv_menu.setVisibility(View.GONE);
searchLinearout.setVisibility(View.GONE);
}
}
if (keyCode == KeyEvent.KEYCODE_BACK) {
ExitDialog.exitDialog(MainActivity.this);
}
return super.onKeyDown(keyCode, event);
}
private void loadMenu(){
gv_menu= (GridView) this.findViewById(R.id.gd_menu);
gv_menu.setBackgroundResource(R.drawable.channelgallery_bg);
gv_menu.setNumColumns(5);
gv_menu.setGravity(Gravity.BOTTOM);
// gv_menu.setVerticalSpacing(10);
gv_menu.setHorizontalSpacing(10);
ArrayList data = new ArrayList();
HashMap map = new HashMap();
map.put("itemImage", R.drawable.menu_new_user);
map.put("itemText", "添加");
data.add(map);
map = new HashMap();
map.put("itemImage", R.drawable.menu_search);
map.put("itemText", "查找");
data.add(map);
map = new HashMap();
map.put("itemImage", R.drawable.menu_update);
map.put("itemText", "同步");
data.add(map);
map = new HashMap();
map.put("itemImage", R.drawable.menu_delete);
map.put("itemText", "删除");
data.add(map);
map = new HashMap();
map.put("itemImage", R.drawable.menu_more);
map.put("itemText", "更多");
data.add(map);
SimpleAdapter menuadapter = new SimpleAdapter(this, data, R.layout.item_menu,
new String[]{"itemImage","itemText"}, new int[]{R.id.item_image,R.id.item_text});
gv_menu.setAdapter(menuadapter);
gv_menu.setOnItemClickListener(new OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view, int position,
long id) {
//HashMap map = (HashMap) parent.getItemAtPosition(1);
switch(position) {
//添加
case 0:{
Intent intent = new Intent(MainActivity.this, AddActivity.class);
startActivity(intent);
break;
}
//查找
case 1:{
//设置搜索框是否可见;
if (searchLinearout == null){
searchLinearout = (LinearLayout) findViewById(R.id.ll_search);
}
if( ifsearch == 0){
searchLinearout.setVisibility(view.VISIBLE);
ifsearch = 1;
}else
{
searchLinearout.setVisibility(view.GONE);
ifsearch = 0;
}
loadsearch();
break;
}
//同步
case 2:{
loadupdate();
Log.d("TEST2", "here");
break;
}
//删除
case 3:{
if(searchLinearout != null && searchLinearout.getVisibility()==View.VISIBLE) {
searchLinearout.setVisibility(View.GONE);
}
if(deleteId == null || deleteId.size() == 0) {
Toast.makeText(MainActivity.this, " 没有标记任何记录\n长按一条记录即可标记", Toast.LENGTH_LONG).show();
} else {
new AlertDialog.Builder(MainActivity.this)
.setTitle("确定要删除标记的"+deleteId.size()+"条记录吗?")
.setPositiveButton("确定", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
Contacts userlist = new Contacts(MainActivity.this);
int deletID[] = new int[deleteId.size()];
for(int k=0;k<deleteId.size();k++){
deletID[k]=deleteId.get(k);
//userlist.deleteContacts( deleteId.get(k));
}
userlist.batDeleteContacts(deletID);
ArrayList list = new ArrayList<HashMap>();
ContactInfo[] userinfo = userlist.readContacts();
if(userinfo == null ){//为空时清除LISTVIEW
lv.setAdapter(null);
}else{
//将ContactInfo[]转换成 list格式;
int length = userinfo.length;
int k=0;
while(k<length) {
HashMap item = new HashMap();
item.put("name", userinfo[k].Name);
item.put("nickname", userinfo[k].SubName);
item.put("phone", userinfo[k].MobileTel);
item.put("telephone", userinfo[k].FixedTel);
item.put("company", userinfo[k].Company);
item.put("address", userinfo[k].Address);
item.put("imageid", userinfo[k].ImageId);
item.put("id", userinfo[k].ContactID);
list.add(item);
k++;
}
if(length == 0){
setTitle("没有查到任何数据");
}else{
adapter = new SimpleAdapter(MainActivity.this,
list,
R.layout.listitem,
new String[]{"imageid","name","phone"},
new int[]{R.id.user_image,R.id.tv_name,R.id.tv_mobilephone});
lv.setAdapter(adapter);
}
deleteId.clear();
}
}
})
.setNegativeButton("取消", null)
.create()
.show() ;
}
break;
}
//更多
case 4:{
if(searchLinearout != null && searchLinearout.getVisibility()==View.VISIBLE) {
searchLinearout.setVisibility(View.GONE);
}
loadMainMenuDialog();
mainMenuDialog.show();
break;
}
}
}
});
}
private void loadsearch() {
searchLinearout = (LinearLayout) findViewById(R.id.ll_search);
et_search = (EditText)findViewById(R.id.et_search);
condition = et_search.getText().toString();
//在线查找功能
//本地查找功能
et_search.addTextChangedListener(new TextWatcher() {
@Override
public void onTextChanged(CharSequence arg0, int arg1, int arg2, int arg3) {
// TODO Auto-generated method stub
String condition = et_search.getText().toString();
if(condition.equals("")) {
lv.setAdapter(adapter);
}
userlist = new Contacts(MainActivity.this);
ContactInfo[] searchuser = userlist.queryContacts(condition);
if(searchuser!=null){
lv.setAdapter(null);
//将ContactInfo[]转换成 list格式;
int length = searchuser.length;
Log.d(TAG,"length1 = " + searchuser.length);
int k=0;
list = new ArrayList<HashMap<String,String>>();
while(k<length) {
HashMap<String,String> item = new HashMap();
item.put("name", searchuser[k].Name);
item.put("nickname", searchuser[k].SubName);
item.put("phone", searchuser[k].MobileTel);
item.put("telephone", searchuser[k].FixedTel);
item.put("company", searchuser[k].Company);
item.put("address", searchuser[k].Address);
item.put("imageid", ""+searchuser[k].ImageId);
item.put("id", ""+searchuser[k].ContactID);
list.add(item);
k++;
}
SimpleAdapter searchadapter = new SimpleAdapter(
MainActivity.this,
list,
R.layout.listitem,
new String[]{"imageid","name","phone"},
new int[]{R.id.user_image,R.id.tv_name,R.id.tv_mobilephone});
lv.setAdapter(searchadapter); //将整合好的adapter交给listview,显示给用户看
//tv_title.setText( "共查到 " + searchuser.length+" 条记录");
//setTitle( "共查到 " + searchuser.length+" 条记录");
}else{
lv.setAdapter(null);
// tv_title.setText("没有查到任何数据");
}
// if(searchuser != null){
// lv.setAdapter(null);
//
// //将ContactInfo[]转换成 list格式;
// int length = searchuser.length;
// int k=0;
// Log.d(TAG,"length = " + searchuser.length);
//
// while(k<length) {
// HashMap item = new HashMap();
// item.put("name", searchuser[k].Name);
// item.put("nickname", searchuser[k].SubName);
// item.put("phone", searchuser[k].MobileTel);
// item.put("telephone", searchuser[k].FixedTel);
// item.put("company", searchuser[k].Company);
// item.put("address", searchuser[k].Address);
// item.put("imageid", searchuser[k].ImageId);
// item.put("id", searchuser[k].ContactID);
// if(list==null){
// list = new ArrayList<HashMap<String,String>>();
// }
// list.add(item);
// k++;
// }
//
// searchadapter = new SimpleAdapter(
// MainActivity.this,
// list,
// R.layout.listitem,
// new String[]{"imageid","name","phone"},
// new int[]{R.id.user_image,R.id.tv_name,R.id.tv_mobilephone});
// lv.setAdapter(searchadapter); //将整合好的adapter交给listview,显示给用户看
//
//
//
//
//
// }
}
@Override
public void beforeTextChanged(CharSequence arg0, int arg1, int arg2,
int arg3) {
}
@Override
public void afterTextChanged(Editable arg0) {
}
});
}
private Handler handler = new Handler(){
public void handleMessage(Message msg) {
//关闭ProgressDialog
progressDialog.dismiss();
//更新UI
loadUserList();
Toast toast=Toast.makeText(MainActivity.this,"更新成功", Toast.LENGTH_LONG);
toast.show();
//statusTextView.setText("Completed!");
}
};
private void loadMainMenuDialog() {
if(mainMenuDialog == null) {
LayoutInflater li = LayoutInflater.from(this);
mainMenuView = li.inflate(R.layout.main_menu_grid, null);
//根据主菜单视图,创建主菜单对话框
mainMenuDialog = new AlertDialog.Builder(this).setView(mainMenuView).create();
//根据主菜单视图,拿到视图文件中的GridView,然后再往里面放Adapter
gv_more = (GridView)mainMenuView.findViewById(R.id.gridview);
gv_more.setHorizontalSpacing(10);
//创建Adapter
String[] main_menu_itemName = { "显示所有", "导入联系人", "关于", "删除所有", "更新", "后退"};
int[] main_menu_itemSource = {
R.drawable.showall,
R.drawable.menu_backup,
R.drawable.menu_quit,
R.drawable.menu_delete,
R.drawable.menu_fresh,
R.drawable.menu_return};
SimpleAdapter menuAdapter = getMenuAdapter(main_menu_itemName, main_menu_itemSource);
gv_more.setAdapter(menuAdapter);
//响应点击事件
gv_more.setOnItemClickListener(new OnItemClickListener(){
@Override
public void onItemClick(AdapterView<?> arg0, View arg1, int arg2,
long arg3) {
switch(arg2){
//显示所有
case 0:{
loadUserList();
setTitle("SharingContact");
mainMenuDialog.dismiss();
break;
}
//导入手机联系人
case 1:{
progressDialog=ProgressDialog
.show(MainActivity.this,
"请等待...",
"正在导入手机联系人,请稍后...",true);
new Thread(){
@Override
public void run() {
// TODO Auto-generated method stub
getPhoneContacts(); //将手机上的联系人导入列表
handler.sendEmptyMessage(0);
}
}.start();
mainMenuDialog.dismiss();
break;
}
//关于;
case 2:{
Intent intent = new Intent(MainActivity.this, AboutActivity.class);
startActivity(intent);
mainMenuDialog.dismiss();
break;
}
//全部删除
case 3:{
AlertDialog.Builder builder = new AlertDialog.Builder(MainActivity.this);
confirmDialog = builder.create();
builder.setTitle("是否删除所有!?");
builder.setPositiveButton("确定", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
ContactInfo[] alluser = userlist.readContacts();
if(alluser != null ){//首次启动时,需要判断数据库是否为空
userlist.clearContacts();
}
lv.setAdapter(null);
mainMenuDialog.dismiss();
}
});
builder.setNegativeButton("取消", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
confirmDialog.dismiss();
}
});
builder.create().show();
break;
}
//更新
case 4:{
loadrenew();
mainMenuDialog.dismiss();
break;
}
//后退
case 5:{
mainMenuDialog.dismiss();
break;
}
}
}});
}
}
private void getPhoneContacts() {
ContentResolver cr = getContentResolver();
//取得电话本中开始一项的光标
Cursor cursor = cr.query(ContactsContract.Contacts.CONTENT_URI, null, null, null, null);
while (cursor.moveToNext())
{
// 取得联系人名字
int nameFieldColumnIndex = cursor.getColumnIndex(PhoneLookup.DISPLAY_NAME);
String name = cursor.getString(nameFieldColumnIndex);
// string += (name);
// 取得联系人ID
String contactId = cursor.getString(cursor.getColumnIndex(ContactsContract.Contacts._ID));
Cursor phone = cr.query(ContactsContract.CommonDataKinds.Phone.CONTENT_URI, null, ContactsContract.CommonDataKinds.Phone.CONTACT_ID + " = "
+ contactId, null, null);
int len = phone.getCount();
mycontact = new ContactInfo[len];
// 取得电话号码(可能存在多个号码)
int k=0;
while (phone.moveToNext())
{
String strPhoneNumber = phone.getString(phone.getColumnIndex(ContactsContract.CommonDataKinds.Phone.NUMBER));
// 创建一个联系人信息
// ContactInfo infoInsert = new ContactInfo(name, "",strPhoneNumber, "", "","",R.drawable.image15);
// 保存一个联系人信息
mycontact[k] = new ContactInfo(name, "",strPhoneNumber, "", "","",R.drawable.image15);
// c.insertContacts(infoInsert);
k++;
}
// string += "\n";
phone.close();
}
cursor.close();
Contacts c = new Contacts(MainActivity.this);
c.readLocalContacts(mycontact);
}
protected void loadrenew() {
final AlertDialog.Builder builder = new AlertDialog.Builder(MainActivity.this);
final LayoutInflater factory =LayoutInflater.from(this);
final View view = factory.inflate(R.layout.renew, null);
builder.setView(view);
builder.setTitle("更新通讯录");
builder.setPositiveButton("确定", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface arg0, int arg1) {
EditText et_renew_phone = (EditText) view.findViewById(R.id.et_renew_phone);
EditText et_renew_password = (EditText) view.findViewById(R.id.et_renew_password);
final String renew_phone = et_renew_phone.getText().toString();
final String renew_password = et_renew_password.getText().toString();
//判断密码格式是否正确
if(renew_password.length()>=4 && renew_password.length()<=8){
//测试
new Thread(new Runnable(){
public void run(){
testjava test = new testjava();
//String returninfo = "null";
String returninfo = test.register(renew_phone,renew_password,3);
Log.d("TEST", returninfo);
// Toast toast=Toast.makeText(MainActivity.this,"tttt", Toast.LENGTH_LONG);
// toast.show();
if(returninfo.equals("Logon OK")){
/*
return:
* "Logon OK" for logon success.
* "Password incorrect" for password incorrect.
* "No account" for account not exist when logging.
* "Register success" for new account register success.
*/
getcontact = test.getContact(renew_phone);
}else if(returninfo.equals("Password incorrect")){
Toast toast1=Toast.makeText(MainActivity.this,"密码不正确!", Toast.LENGTH_LONG);
toast1.show();
}else if(returninfo.equals("No account")){
Toast toast1=Toast.makeText(MainActivity.this,"账号不存在!", Toast.LENGTH_LONG);
toast1.show();
}
}
}).start();
if(getcontact == null ){
Toast toast=Toast.makeText(MainActivity.this,"无法获取数据,请重试!", Toast.LENGTH_LONG);
toast.show();
}
if(getcontact != null ){
ArrayList list = new ArrayList<HashMap>();
int length = getcontact.length;
ContactInfo[] getcontactinfo = new ContactInfo[length];
int k=0;
while(k<length) {
HashMap item = new HashMap();
item.put("name", getcontact[k].name);
item.put("nickname", getcontact[k].nickName);
item.put("phone", getcontact[k].tel);
item.put("telephone", getcontact[k].fixedTel);
item.put("company", getcontact[k].company);
item.put("address", getcontact[k].address);
item.put("imageid", R.drawable.image15);
item.put("id", getcontact[k].contactId);
list.add(item);
//将contact转化成contactinfo格式;
getcontactinfo[k] = new ContactInfo();
getcontactinfo[k].Name = getcontact[k].name;
getcontactinfo[k].SubName = getcontact[k].nickName;
getcontactinfo[k].MobileTel = getcontact[k].tel;
getcontactinfo[k].FixedTel = getcontact[k].fixedTel;
getcontactinfo[k].Company = getcontact[k].company;
getcontactinfo[k].Address = getcontact[k].address;
getcontactinfo[k].ContactID = getcontact[k].contactId;
getcontactinfo[k].ImageId = R.drawable.image15;
k++;
}
if(length == 0){
setTitle("没有查到任何数据");
}else{
userlist.importContacts(getcontactinfo);
adapter = new SimpleAdapter(MainActivity.this,
list,
R.layout.listitem,
new String[]{"imageid","name","phone"},
new int[]{R.id.user_image,R.id.tv_name,R.id.tv_mobilephone});
lv.setAdapter(adapter);
Toast toast=Toast.makeText(MainActivity.this,"已从服务器更新成功", Toast.LENGTH_LONG);
toast.show();
}
}
progressDialog=ProgressDialog.show(MainActivity.this, "请等待...", "正在更新联系人...",true);
handler3.sendEmptyMessage(0);
//写入本地用户数据库
userlist.writeInfoInServer(renew_phone);
}else{
Toast toast=Toast.makeText(MainActivity.this,"密码:"+renew_password+",长度有误,更新不成功", Toast.LENGTH_LONG);
toast.show();
}
}
});
builder.setNegativeButton("取消", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface arg0, int arg1) {
// TODO Auto-generated method stub
}
});
builder.create().show();
}
private Handler handler2 = new Handler(){
public void handleMessage(Message msg) {
//关闭ProgressDialog
progressDialog.dismiss();
Toast toast=Toast.makeText(MainActivity.this,"已同步服务器", Toast.LENGTH_LONG);
toast.show();
}
};
private Handler handler3 = new Handler(){
public void handleMessage(Message msg) {
//关闭ProgressDialog
progressDialog.dismiss();
}
};
private void loadupdate() {
LayoutInflater li = LayoutInflater.from(this);
final View textEntryView = li.inflate(R.layout.main_menu_update, null);
final LinearLayout updatelayout = (LinearLayout) getLayoutInflater().inflate(R.layout.main_menu_update, null);
builder = new AlertDialog.Builder(this);
builder.setTitle("同步通讯录");
builder.setView(textEntryView).create();
builder.setPositiveButton("同步", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface arg0, int arg1) {
//同步操作
// shock = (CheckBox)musicDilog.findViewById(R.id.shock);
et_phone = (EditText) textEntryView.findViewById(R.id.myname);
et_password = (EditText) textEntryView.findViewById(R.id.password);
cb_share = (CheckBox) textEntryView.findViewById(R.id.cb_find);
phone = et_phone.getText().toString();
password = et_password.getText().toString();
final int error=0;
Log.d(TAG, phone);
if(cb_share.isChecked()){
share=2;
}else{
share=1;
}
share = 1;
if(phone=="" ){
Toast toast=Toast.makeText(getApplicationContext(), "请先输入您的手机号码", Toast.LENGTH_SHORT);
toast.show();
}else if(password.length()<4 && password.length()>8 ){
Toast toast=Toast.makeText(getApplicationContext(), "密码长度不正确", Toast.LENGTH_SHORT);
toast.show();
}
else{
new Thread(new Runnable(){
public void run(){
userlist=new Contacts(MainActivity.this);
ContactInfo[][] userinfo=userlist.syncContactsPre();
testjava test=new testjava();
test.register(phone,password,share);
contact[] infosInsert=null;
contact[] infosUpdate=null;
if(userinfo[0]!=null){
int k=0;
int length1=userinfo[0].length;
infosInsert=new contact[length1];
while(k<length1){
infosInsert[k]=new contact();
infosInsert[k].name=userinfo[0][k].Name;
infosInsert[k].tel=userinfo[0][k].MobileTel;
infosInsert[k].contactId=userinfo[0][k].ContactID;
infosInsert[k].nickName = userinfo[0][k].SubName;
infosInsert[k].fixedTel = userinfo[0][k].FixedTel;
infosInsert[k].company = userinfo[0][k].Company;
infosInsert[k].address = userinfo[0][k].Address;
k++;
}
Log.d("test", test.sync(phone,infosInsert));
}
if(userinfo[1]!=null){
int k=0;
int length1=userinfo[1].length;
infosUpdate=new contact[length1];
while(k<length1){
infosUpdate[k]=new contact();
infosUpdate[k].name=userinfo[0][k].Name;
infosUpdate[k].tel=userinfo[0][k].MobileTel;
infosUpdate[k].contactId=userinfo[0][k].ContactID;
infosUpdate[k].nickName = userinfo[0][k].SubName;
infosUpdate[k].fixedTel = userinfo[0][k].FixedTel;
infosUpdate[k].company = userinfo[0][k].Company;
infosUpdate[k].address = userinfo[0][k].Address;
k++;
}
Log.d("test", test.sync(phone,infosInsert));
}
if(userinfo[2]!=null){
int k=0;
int length1=userinfo[2].length;
while(k<length1){
Log.d("test", test.deleteContact(phone,userinfo[2][k].ContactID));
k++;
}
}
userlist.syncContactsPost();
}
}).start();
}
progressDialog=ProgressDialog
.show(MainActivity.this,
"请等待...",
"正在同步服务器,请稍后...",true);
userlist.writeInfoInServer(phone);
handler2.sendEmptyMessage(0);
}
});
builder.setNegativeButton("取消", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface arg0, int arg1) {
}
});
builder.show();
}
private SimpleAdapter getMenuAdapter(String[] menuNameArray,
int[] imageResourceArray) {
ArrayList<HashMap<String, Object>> data = new ArrayList<HashMap<String, Object>>();
for (int i = 0; i < menuNameArray.length; i++) {
HashMap<String, Object> map = new HashMap<String, Object>();
map.put("itemImage", imageResourceArray[i]);
map.put("itemText", menuNameArray[i]);
data.add(map);
}
SimpleAdapter simperAdapter =
new SimpleAdapter(
this,
data,
R.layout.item_menu,
new String[] { "itemImage", "itemText" },
new int[] { R.id.item_image, R.id.item_text });
return simperAdapter;
}
}
5
最新推荐文章于 2025-06-24 09:00:15 发布
7545

被折叠的 条评论
为什么被折叠?



