6

来源:互联网 发布:tensorflow 镜像下载 编辑:程序博客网 时间:2024/05/06 04:52
package com.example.sharingcontact;import java.util.ArrayList;import com.example.sharingcontact.AddActivity.ImageAdapter;import com.example.sharingcontact.UpdateActivity.contact;import com.example.sharingcontact.db.ContactInfo;import com.example.sharingcontact.db.Contacts;import android.app.Activity;import android.app.AlertDialog;import android.app.Dialog;import android.content.Context;import android.content.DialogInterface;import android.content.Intent;import android.graphics.Color;import android.net.Uri;import android.os.Bundle;import android.util.Log;import android.view.KeyEvent;import android.view.LayoutInflater;import android.view.View;import android.view.ViewGroup;import android.view.Window;import android.view.View.OnClickListener;import android.view.WindowManager;import android.view.animation.AnimationUtils;import android.widget.AdapterView;import android.widget.Button;import android.widget.EditText;import android.widget.Gallery;import android.widget.ImageButton;import android.widget.ImageSwitcher;import android.widget.TextView;import android.widget.AdapterView.OnItemSelectedListener;import android.widget.ViewSwitcher.ViewFactory;import android.widget.AdapterView;import android.widget.ArrayAdapter;import android.widget.BaseAdapter;import android.widget.Button;import android.widget.EditText;import android.widget.Gallery;import android.widget.ImageButton;import android.widget.ImageSwitcher;import android.widget.ImageView;import android.widget.ListView;import android.widget.Toast;import android.widget.AdapterView.OnItemClickListener;import android.widget.AdapterView.OnItemSelectedListener;import android.widget.ImageView.ScaleType;import android.widget.ViewSwitcher.ViewFactory;public class ModifyActivity extends Activity implements ViewFactory{EditText et_name;EditText et_telePhone;EditText et_phone;EditText et_nickname;EditText et_company;EditText et_address;    int id;Button btn_save;Button btn_return;Button btn_delete;TextView tv_title;Button btn_message;Button btn_dial;ContactInfo user;//头像的按钮ImageButton imageButton;//用flag来判断按钮的状态   false表示查看点击修改状态  true表示点击修改保存状态boolean flag = false;boolean imageChanged = false;boolean isDataChanged = false;int currentImagePosition;int previousImagePosition;String[] callData;//表示状态:打电话,发短信,发邮件String status;//拥有一个user实例,这个对象由Intent传过来Gallery gallery;ImageSwitcher is;View numChooseView;View imageChooseView;//号码选择的对话框AlertDialog numChooseDialog;AlertDialog imageChooseDialog =null;/** * 所有的图像图片 */private  int[] images = new int[]{R.drawable.icon,R.drawable.image1,R.drawable.image2,R.drawable.image3,R.drawable.image4,R.drawable.image5,R.drawable.image6,R.drawable.image7,R.drawable.image8,R.drawable.image9,R.drawable.image10,R.drawable.image11,R.drawable.image12,R.drawable.image13,R.drawable.image14,R.drawable.image15,R.drawable.image16,R.drawable.image17,R.drawable.image18,R.drawable.image19,R.drawable.image20,R.drawable.image21,R.drawable.image22,R.drawable.image23,R.drawable.image24,R.drawable.image25,R.drawable.image26,R.drawable.image27,R.drawable.image28,R.drawable.image29,R.drawable.image30};@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);//在标题上添加按钮requestWindowFeature(Window.FEATURE_CUSTOM_TITLE);  setContentView(R.layout.modify);getWindow().setFeatureInt(Window.FEATURE_CUSTOM_TITLE, R.layout.titleitem); //默认不弹出软键盘 getWindow().setSoftInputMode( WindowManager.LayoutParams.SOFT_INPUT_STATE_HIDDEN);     final TextView tv_title = (TextView) findViewById(R.id.tv_title);     tv_title.setText("联系人列表");//获得意图Intent intent = getIntent();//从意图中得到需要的user对象user = (ContactInfo) intent.getSerializableExtra("user");loadUserData();setEditTextDisable();//为按钮添加监听类btn_delete.setOnClickListener(new OnClickListener() {@Overridepublic void onClick(View arg0) {deleteat();}});btn_save.setOnClickListener(new OnClickListener(){@Overridepublic void onClick(View arg0) {if(!flag) {btn_save.setText("保存");setEditTextAble();setColorToBlack();flag = true;tv_title.setText("修改联系人");} else {//往数据库里面更新数据modify();finish();setEditTextDisable();setColorToGray();btn_save.setText("修改");tv_title.setText("联系人详情");flag = false;}}});btn_return.setOnClickListener(new OnClickListener(){@Overridepublic void onClick(View v) {finish();}});//返回键imageButton.setOnClickListener(new OnClickListener(){@Overridepublic void onClick(View v) {loadImage();//为gallery装载图片initImageChooseDialog();//初始化imageChooseDialogimageChooseDialog.show();}});btn_message.setOnClickListener(new OnClickListener() {@Overridepublic void onClick(View arg0) {status = Intent.ACTION_SENDTO;if(callData == null) {loadAvailableCallData();}if(callData.length == 0) {//提示没有可用的号码Toast.makeText(ModifyActivity.this, "没有可用的号码!", Toast.LENGTH_LONG).show();} else if(callData.length == 1) {//如果之后又一个可用的号码,这直接使用这个号码拨出Intent intent = new Intent(Intent.ACTION_SENDTO,Uri.parse("smsto://" + callData[0]));startActivity(intent);} else {initNumChooseDialog();}}});btn_dial.setOnClickListener(new OnClickListener() {public void onClick(View arg0) {//将状态设置为打电话status = Intent.ACTION_CALL;if(callData == null) {//加载可用的号码loadAvailableCallData();}if(callData.length == 0) {//提示没有可用的号码Toast.makeText(ModifyActivity.this, "没有可用的号码!", Toast.LENGTH_LONG).show();} else if(callData.length == 1) {//如果之有一个可用的号码,这直接使用这个号码拨出Intent intent = new Intent(Intent.ACTION_CALL,Uri.parse("tel://" + callData[0]));startActivity(intent);} else {//如果有2个或者2个以上号码,弹出号码选择对话框initNumChooseDialog();}}});}//短信或者电话功能public void loadAvailableCallData() {ArrayList<String> callNums = new ArrayList<String>();if(!user.MobileTel.equals("")) {callNums.add(user.MobileTel);}if(!user.FixedTel.equals("")) {callNums.add(user.FixedTel);}callData = new String[callNums.size()];for(int i=0;i<callNums.size();i++) {callData[i] = callNums.get(i);}}public void initNumChooseDialog() {if(numChooseDialog == null) {AlertDialog.Builder builder = new AlertDialog.Builder(this);LayoutInflater inflater = LayoutInflater.from(this);numChooseView = inflater.inflate(R.layout.numchoose, null);ListView lv = (ListView)numChooseView.findViewById(R.id.num_list);    ArrayAdapter array =         new ArrayAdapter(this,android.R.layout.simple_list_item_1,callData);    lv.setAdapter(array);    lv.setOnItemClickListener(new OnItemClickListener(){@Overridepublic void onItemClick(AdapterView<?> arg0, View arg1, int arg2,long arg3) {String num = String.valueOf(arg0.getItemAtPosition(arg2));Intent intent = null;if(status.equals(Intent.ACTION_CALL)) {intent = new Intent(Intent.ACTION_CALL,Uri.parse("tel://" + num));} else {intent = new Intent(Intent.ACTION_SENDTO,Uri.parse("smsto://" + num));}startActivity(intent);//对话框消失numChooseDialog.dismiss();}});        builder.setView(numChooseView);numChooseDialog = builder.create();}numChooseDialog.show();} public boolean onKeyDown(int keyCode, KeyEvent event){if (keyCode == KeyEvent.KEYCODE_BACK) { if(flag) {Dialog dialog = new AlertDialog.Builder(ModifyActivity.this) // 实例化对象//.setIcon(R.drawable.pic_m) // 设置显示图片.setMessage("是否保存联系人?") // 设置显示内容.setPositiveButton("确定", // 增加一个确定按钮new DialogInterface.OnClickListener() {// 设置操作监听public void onClick(DialogInterface dialog,int whichButton) { // 单击事件modify();flag=false;finish();}}).setNegativeButton("取消", // 增加取消按钮new DialogInterface.OnClickListener() {// 设置操作监听public void onClick(DialogInterface dialog,int whichButton) { // 单击事件finish();}}).create(); // 创建Dialogdialog.show(); // 显示对话框}    }return super.onKeyDown(keyCode, event); }public void loadImage() {if(imageChooseView == null) {LayoutInflater li = LayoutInflater.from(ModifyActivity.this);imageChooseView = li.inflate(R.layout.imageswitch, null);gallery = (Gallery)imageChooseView.findViewById(R.id.img_gallery);//gallery.setAdapter(adapter);gallery.setAdapter(new ImageAdapter(ModifyActivity.this));gallery.setSelection(images.length/2);is = (ImageSwitcher)imageChooseView.findViewById(R.id.image_switcher);is.setFactory(this);gallery.setOnItemSelectedListener(new OnItemSelectedListener(){@Overridepublic void onItemSelected(AdapterView<?> arg0, View arg1,int arg2, long arg3) {// TODO Auto-generated method stubcurrentImagePosition = arg2 % images.length;is.setImageResource(images[arg2 % images.length]);}@Overridepublic void onNothingSelected(AdapterView<?> arg0) {}});}}/** * 自定义Gallery的适配器 */class ImageAdapter extends BaseAdapter {private Context context;public ImageAdapter(Context context) {this.context = context;}@Overridepublic int getCount() {return Integer.MAX_VALUE;}@Overridepublic Object getItem(int position) {return position;}@Overridepublic long getItemId(int position) {return position;}/** * gallery从这个方法中拿到image */@Overridepublic View getView(int position, View convertView, ViewGroup parent) {ImageView iv = new ImageView(context);iv.setImageResource(images[position%images.length]);iv.setAdjustViewBounds(true);iv.setLayoutParams(new Gallery.LayoutParams(80,80));iv.setPadding(15, 10, 15, 10);return iv;}}@Overridepublic View makeView() {ImageView view = new ImageView(this);view.setBackgroundColor(0xff000000);view.setScaleType(ScaleType.FIT_CENTER);view.setLayoutParams(new ImageSwitcher.LayoutParams(90,90));return view;}public void initImageChooseDialog() {if(imageChooseDialog == null) {AlertDialog.Builder builder = new AlertDialog.Builder(this);builder.setTitle("请选择图像").setView(imageChooseView).setPositiveButton("确定", new DialogInterface.OnClickListener() {@Overridepublic void onClick(DialogInterface dialog, int which) {imageChanged = true;previousImagePosition = currentImagePosition;imageButton.setImageResource(images[currentImagePosition%images.length]);}}).setNegativeButton("取消", new DialogInterface.OnClickListener() {@Overridepublic void onClick(DialogInterface dialog, int which) {currentImagePosition = previousImagePosition;}});imageChooseDialog = builder.create();}}/** * 获得布局文件中的控件,并且根据传递过来user对象对控件进行赋值 */public void loadUserData() {// 获得EditText控件et_name = (EditText)findViewById(R.id.name);et_nickname = (EditText) findViewById(R.id.nickname);et_phone = (EditText)findViewById(R.id.phone);et_telePhone = (EditText)findViewById(R.id.telephone);et_company = (EditText)findViewById(R.id.company);et_address = (EditText)findViewById(R.id.address);// 获得Button控件btn_delete =  (Button) findViewById(R.id.delete);btn_save = (Button) findViewById(R.id.btn_titlesave);btn_return = (Button)findViewById(R.id.btn_titlecancle);tv_title = (TextView) findViewById(R.id.tv_title);imageButton = (ImageButton)findViewById(R.id.image_button); btn_message = (Button) findViewById(R.id.message);btn_dial = (Button) findViewById(R.id.dial);      //  editText.setFocusableInTouchMode(true);       //  editText.requestFocus(); // 为控件赋值btn_save.setText("修改");    tv_title.setText("联系人详情");et_name.setText(user.Name);et_nickname.setText(user.SubName);et_phone.setText(user.MobileTel);et_telePhone.setText(user.FixedTel);et_company.setText(user.Company);et_address.setText(user.Address);imageButton.setImageResource(user.ImageId);}/** * 设置EditText为不可用 */private void setEditTextDisable() {et_name.setEnabled(false);et_nickname.setEnabled(false);et_phone.setEnabled(false);et_telePhone.setEnabled(false);et_company.setEnabled(false);et_address.setEnabled(false);imageButton.setEnabled(false);setColorToGray();}/** * 设置EditText为可用状态 */private void setEditTextAble() {et_name.setEnabled(true);et_nickname.setEnabled(true);et_phone.setEnabled(true);et_telePhone.setEnabled(true);et_company.setEnabled(true);et_address.setEnabled(true);imageButton.setEnabled(true);//setColorToBlack();}/** *  设置显示的字体颜色为黑色 */private void setColorToBlack() {et_name.setTextColor(Color.BLACK);et_nickname.setTextColor(Color.BLACK);et_phone.setTextColor(Color.BLACK);et_telePhone.setTextColor(Color.BLACK);et_company.setTextColor(Color.BLACK);et_address.setTextColor(Color.BLACK);}/** *  设置显示的字体颜色为白色 */private void setColorToGray() {et_name.setTextColor(Color.GRAY);et_nickname.setTextColor(Color.GRAY);et_phone.setTextColor(Color.GRAY);et_telePhone.setTextColor(Color.GRAY);et_company.setTextColor(Color.GRAY);et_address.setTextColor(Color.GRAY);}/** * 获得最新数据,创建Contactinfo对象,更新数据库 */private void modify() {Log.d("先前", user.MobileTel);user.Name = et_name.getText().toString();user.SubName = et_nickname.getText().toString();user.MobileTel = et_phone.getText().toString();user.FixedTel = et_telePhone.getText().toString();user.Company = et_company.getText().toString();user.Address = et_address.getText().toString();if(imageChanged) {user.ImageId = images[currentImagePosition%images.length];} Contacts c = new Contacts(ModifyActivity.this); c.updateContacts(user);Log.d("后来", user.MobileTel);}public void deleteat(){int id = user.ContactID; Contacts c = new Contacts(ModifyActivity.this); c.deleteContacts(id); finish();        Toast toast=Toast.makeText(getApplicationContext(), user.Name+"  已删除", Toast.LENGTH_SHORT);         toast.show(); }}


 

0 0
原创粉丝点击