Android-通讯录

代码来源:Android移动开发教程(项目式)
工程文件:https://download.csdn.net/download/m0_53397360/13669859

整体结构:

在这里插入图片描述

1、activity_add.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
    >

<LinearLayout
    android:layout_height="wrap_content"
    android:layout_width="wrap_content"
    android:orientation="horizontal"
    android:layout_marginTop="10dp"
    >
    <TextView
        android:layout_width="80dp"
        android:layout_height="wrap_content"
        android:text="姓名:"
        android:textSize="22dp"
        android:layout_marginLeft="5dp"
        />

    <EditText
        android:id="@+id/name"
        android:layout_width="302dp"
        android:layout_height="wrap_content" />
</LinearLayout>

<LinearLayout
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:orientation="horizontal"
    android:layout_marginTop="10dp"
    >

    <TextView
        android:layout_width="80dp"
        android:layout_height="wrap_content"
        android:text="公司:"
        android:textSize="22dp"
        android:layout_marginLeft="5dp"
        />

    <EditText
        android:id="@+id/company"
        android:layout_width="302dp"
        android:layout_height="wrap_content"
        android:minLines="2"
        />
</LinearLayout>

<LinearLayout
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_marginTop="10dp"
    android:orientation="horizontal">

    <TextView
        android:layout_width="80dp"
        android:layout_height="wrap_content"
        android:text="职位:"
        android:textSize="22dp"
        android:layout_marginLeft="5dp"
        />

    <EditText
        android:id="@+id/position"
        android:layout_width="302dp"
        android:layout_height="wrap_content"

        />

</LinearLayout>
<LinearLayout
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_marginTop="10dp"
    android:orientation="horizontal">

    <TextView
        android:layout_width="80dp"
        android:layout_height="wrap_content"
        android:text="手机号:"
        android:textSize="22dp"
        android:layout_marginLeft="5dp"
        />

    <EditText
        android:id="@+id/phone"
        android:layout_width="302dp"
        android:layout_height="wrap_content"
        android:inputType="number"
        />

</LinearLayout>
<!--qq-->
<LinearLayout
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_marginTop="10dp"
    android:orientation="horizontal"
    >

    <TextView
        android:layout_width="80dp"
        android:layout_height="wrap_content"
        android:text="Q Q:"
        android:textSize="22dp"
        android:layout_marginLeft="5dp"
        />

    <EditText
        android:id="@+id/qq"
        android:layout_width="302dp"
        android:layout_height="wrap_content"
        android:inputType="number"
        />
</LinearLayout>

<!--地址-->

<LinearLayout
    android:layout_height="wrap_content"
    android:layout_width="wrap_content"
    android:orientation="horizontal"
    android:layout_marginTop="10dp"
    >
    <TextView
        android:layout_width="80dp"
        android:layout_height="wrap_content"
        android:text="地址:"
        android:textSize="22dp"
        android:layout_marginLeft="5dp"
        />

    <EditText
        android:id="@+id/address"
        android:layout_width="302dp"
        android:layout_height="wrap_content"
        android:minLines="2"
        />
</LinearLayout>

</LinearLayout>

2、activity_check.xml

<?xml version="1.0" encoding="utf-8"?>



    <TextView
        android:id="@+id/name"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="姓名:"
        android:textSize="22dp"
        android:layout_marginLeft="5.0dip"

        />
</LinearLayout>

<LinearLayout
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:orientation="horizontal"
    android:layout_marginTop="10dp"
    >

    <TextView
        android:layout_width="80dp"
        android:layout_height="wrap_content"
        android:text="公司:"
        android:textSize="22dp"
        android:layout_marginLeft="5dp"
        />
    <TextView
        android:id="@+id/company"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="公司:"
        android:textSize="22dp"
        android:layout_marginLeft="5dp"

        />


</LinearLayout>

<LinearLayout
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_marginTop="10dp"
    android:orientation="horizontal">

    <TextView
        android:layout_width="80dp"
        android:layout_height="wrap_content"
        android:text="职位:"
        android:textSize="22dp"
        android:layout_marginLeft="5dp"
        />

    <TextView
        android:id="@+id/position"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="职位:"
        android:textSize="22dp"
        android:layout_marginLeft="5.0dip"


        />

</LinearLayout>
<LinearLayout
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_marginTop="10dp"
    android:orientation="horizontal">

    <TextView
        android:layout_width="80dp"
        android:layout_height="wrap_content"
        android:text="手机号:"
        android:textSize="22dp"
        android:layout_marginLeft="5dp"
        />

    <TextView
        android:id="@+id/phone"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="手机号码:"
        android:textSize="22dp"
        android:layout_marginLeft="5.0dip"


        />

</LinearLayout>

<LinearLayout
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_marginTop="10dp"
    android:orientation="horizontal"
    >

    <TextView
        android:layout_width="80dp"
        android:layout_height="wrap_content"
        android:text="Q Q:"
        android:textSize="22dp"
        android:layout_marginLeft="5dp"
        />

    <TextView
        android:id="@+id/qq"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="QQ:"
        android:textSize="22dp"
        android:layout_marginLeft="5.0dip"


        />
</LinearLayout>


<LinearLayout
    android:layout_height="wrap_content"
    android:layout_width="wrap_content"
    android:orientation="horizontal"
    android:layout_marginTop="10dp"
    >
    <TextView
        android:layout_width="80dp"
        android:layout_height="wrap_content"
        android:text="地址:"
        android:textSize="22dp"
        android:layout_marginLeft="5dp"
        />

    <TextView
        android:id="@+id/address"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="地址:"
        android:textSize="22dp"
        android:layout_marginLeft="5.0dip"


        />
</LinearLayout>

3、activity_find.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical"
    >
    <LinearLayout
        android:layout_height="wrap_content"
        android:layout_width="wrap_content"
        android:orientation="horizontal"

        >
        <TextView
            android:layout_width="80dp"
            android:layout_height="wrap_content"
            android:text="查询:"
            android:textSize="22dp"
            android:layout_marginLeft="5dp"
            />
        <EditText
            android:id="@+id/findedit"
            android:layout_width="190dp"
            android:layout_height="wrap_content"/>

    </LinearLayout>

    <LinearLayout
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:orientation="horizontal"
        android:layout_marginTop="10dp"
        >

        <Button
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:id="@+id/find"
            android:text="查询"/>
        <Button
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_marginLeft="100dp"
            android:id="@+id/cancel"
            android:text="取消"/>



    </LinearLayout>




</LinearLayout>

4、activity_main.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical"
    >


    <ListView
        android:id="@+id/listView"
        android:layout_width="match_parent"
        android:layout_height="match_parent" />

</LinearLayout>

5、Mainactivity.class

package com.example.addressbook;

import androidx.appcompat.app.AlertDialog;
import androidx.appcompat.app.AppCompatActivity;

import android.app.Dialog;
import android.content.Context;
import android.content.DialogInterface;
import android.content.Intent;
import android.graphics.Color;
import android.os.Build;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.view.ViewGroup;
import android.widget.AdapterView;
import android.widget.BaseAdapter;
import android.widget.Button;
import android.widget.EditText;
import android.widget.ListView;
import android.widget.TextView;
import android.widget.Toast;

import java.util.List;

public class MainActivity extends AppCompatActivity {
    private ListView listView;
    private BaseAdapter baseAdapter;
    private User users[];
    private int select=0;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        setTitle("通讯录");
        listView=(ListView)findViewById(R.id.listView);
        getAddressBook();

    }
    private void getAddressBook(){
        ContactsTable contactsTable=new ContactsTable(this);
        users=contactsTable.read();
        baseAdapter=new BaseAdapter() {
            @Override
            public int getCount() {
                return users.length;
            }

            @Override
            public Object getItem(int position) {
                return users[position];
            }

            @Override
            public long getItemId(int position) {
                return position;
            }

            @Override
            public View getView(int position, View convertView, ViewGroup parent) {
                if(convertView==null){
                    TextView textView=new TextView(MainActivity.this);
                    textView.setTextSize(20);
                    convertView=textView;
                }
                String phone=users[position].getPhone()==null?"":users[position].getPhone();
                ((TextView)convertView).setText(users[position].getName()+"————————"+phone);
                if(position==select){
                    convertView.setBackgroundColor(Color.rgb(135,206,235));
                }else{
                    convertView.setBackgroundColor(0);
                }
                return convertView;
            }
        };
        listView.setAdapter(baseAdapter);
        listView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
            @Override
            public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
                select=position;
                baseAdapter.notifyDataSetChanged();
            }
        });

    }
    public boolean  onCreateOptionsMenu(Menu menu){
        menu.add(Menu.NONE,1,Menu.NONE,"添加");
        menu.add(Menu.NONE,2,Menu.NONE,"查看");
        menu.add(Menu.NONE,3,Menu.NONE,"删除");
        menu.add(Menu.NONE,4,Menu.NONE,"查询");

        return super.onCreateOptionsMenu(menu);
    }
    public boolean onOptionsItemSelected(MenuItem item) {
        switch (item.getItemId()) {
            case 1:
                Intent intent=new Intent(MainActivity.this,Add.class);
                startActivity(intent);
                break;
            case 2:
                if(users[select].getId()>0){
                    intent=new Intent(MainActivity.this,Check.class);
                    intent.putExtra("Id",users[select].getId());
                    startActivity(intent);
                }
                break;
            case 3:
                if(users[select].getId()>0){
                    AlertDialog.Builder alert=new AlertDialog.Builder(this);
                    alert.setMessage("是否删除联系人?");
                    alert.setPositiveButton("是", new DialogInterface.OnClickListener() {
                        @Override
                        public void onClick(DialogInterface dialog, int which) {
                            ContactsTable contactsTable=new ContactsTable(MainActivity.this);
                            if(contactsTable.delete(users[select])){
                                users=contactsTable.read();
                                baseAdapter.notifyDataSetChanged();
                                select=0;
                                Toast.makeText(MainActivity.this,"删除成功",Toast.LENGTH_SHORT).show();
                            }
                        }
                    });
                    alert.setNegativeButton("否",new DialogInterface.OnClickListener() {
                        @Override
                        public void onClick(DialogInterface dialog, int which) {

                        }
                    });
                    alert.show();
                }

                break;
            case 4:
                new Find(this).show();
                break;
            default:break;
        }

        return super.onOptionsItemSelected(item);
    }
    public class Find extends Dialog {
        public Find(Context context){
            super(context);
        }
        public void onCreate(Bundle bundle){
            super.onCreate(bundle);
            setContentView(R.layout.activity_find);
            Button find=(Button) findViewById(R.id.find);
            Button cancel=(Button) findViewById(R.id.cancel);
            find.setOnClickListener(new View.OnClickListener(){

                @Override
                public void onClick(View v) {
                    EditText findedit=(EditText)findViewById(R.id.findedit);
                    ContactsTable contactsTable=new ContactsTable(MainActivity.this);
                    users=contactsTable.find(findedit.getText().toString());
                    baseAdapter.notifyDataSetChanged();;
                    select=0;
                    dismiss();
                }
            });
            cancel.setOnClickListener(new View.OnClickListener(){
                @Override
                public void onClick(View v) {
                    dismiss();
                }
            });
        }
    }


}

6、DB.class

package com.example.addressbook;

import android.content.ContentValues;
import android.content.Context;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteOpenHelper;


public  class DB extends SQLiteOpenHelper {
    private static String DB_NAME="My_DB.db";
    private static int DB_VERSION=1;
    private SQLiteDatabase db;

    public DB(Context context) {
        super(context, DB_NAME, null,DB_VERSION);
        db=getWritableDatabase();
    }

    @Override
    public void onCreate(SQLiteDatabase db) {

    }

    @Override
    public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {

    }
    //连接数据库
    public SQLiteDatabase openConnection(){
        if(!db.isOpen()) {
            db = getWritableDatabase();
        }
        return db;
    }

    public void closeConnection(){
        try{
            if(db!=null&&db.isOpen())
                db.close();
        }catch (Exception e){
            e.printStackTrace();
        }
    }
    //创建表
    public boolean createTable(String createTableSql){
        try{
            openConnection();
            db.execSQL(createTableSql);
        }catch(Exception e){
            e.printStackTrace();
            return false;

        }finally{
            closeConnection();
        }
        return true;
    }
    //插入记录
    public boolean insert(String tableName, ContentValues values){
        try{
            openConnection();
            db.insert(tableName,null,values);
        }catch(Exception e){
            e.printStackTrace();
            return false;

        }finally{
            closeConnection();
        }
        return true;
    }
    //修改记录
    public boolean update(String table, ContentValues values,String whereClause,String []whereArgs){
        try{
            openConnection();
            db.update(table, values, whereClause, whereArgs);
        }catch(Exception e){
            e.printStackTrace();
            return false;

        }finally{
            closeConnection();
        }
        return true;
    }
    //删除记录
    public boolean delete(String table, String deleteSql,String obj[]){
        try{
            openConnection();
            db.delete(table, deleteSql, obj);
        }catch(Exception e){
            e.printStackTrace();
            return false;

        }finally{
            closeConnection();
        }
        return true;
    }
    //查询
    public Cursor find(String findSql,String obj[]){
        try{
            openConnection();
            Cursor cursor=db.rawQuery(findSql, obj);
            return cursor;
        }catch(Exception e){
            e.printStackTrace();
            return null;
        }
    }
    //判断表是否存在
    public boolean isTableExits(String tablename){

        try{
            openConnection();
            String str="select count(*)xcount from"+tablename;
            db.rawQuery(str,null).close();
        }catch(Exception e){
            return false;
        }finally {
            closeConnection();
        }
        return true;
    }

}

7、User.class

package com.example.addressbook;
public class User {
    private String name;
    private String company;
    private String position;
    private String phone;
    private String qq;
    private String address;
    public  int id=-1;

    public int getId() {
        return id;
    }

    public void setId(int id) {
        this.id = id;
    }

    public String getAddress() {
        return address;
    }

    public String getCompany() {
        return company;
    }

    public String getName() {
        return name;
    }

    public String getPhone() {
        return phone;
    }

    public String getPosition() {
        return position;
    }

    public String getQq() {
        return qq;
    }

    public void setAddress(String address) {
        this.address = address;
    }

    public void setCompany(String company) {
        this.company = company;
    }

    public void setName(String name) {
        this.name = name;
    }

    public void setPhone(String phone) {
        this.phone = phone;
    }

    public void setPosition(String position) {
        this.position = position;
    }

    public void setQq(String qq) {
        this.qq = qq;
    }

}

8、Contacts Table.class

package com.example.addressbook;

import android.content.ContentValues;
import android.content.Context;
import android.database.Cursor;
import android.widget.Toast;

import java.util.Vector;

public class ContactsTable {
    private  String  tablename="contact";
    private DB db;
    public ContactsTable(Context context){
        db=new DB(context);
        //该表不存在则创建表
        if(!db.isTableExits(tablename)){
            String sql="CREATE TABLE contact ("+
                    "Id integer primary key AUTOINCREMENT,'name' varchar ,"+
                    "'company' varchar,'position' varchar,'phone' varchar,'qq' varchar,"+
                    " 'address' varchar)";
            db.createTable(sql);
        }
    }
    //添加联系人
    public boolean add(User user){
        ContentValues values=new ContentValues();
        values.put("name",user.getName());
        values.put("company",user.getCompany());
        values.put("position",user.getPosition());
        values.put("phone",user.getPhone());
        values.put("qq",user.getQq());
        values.put("address",user.getAddress());
        return db.insert("contact",values);
    }
    //修改联系人
    public boolean update(User user){
        ContentValues values=new ContentValues();
        values.put("name",user.getName());
        values.put("company",user.getCompany());
        values.put("position",user.getPosition());
        values.put("phone",user.getPhone());
        values.put("qq",user.getQq());
        values.put("address",user.getAddress());
        return db.update("contact",values,"Id=?",new String[]{user.getId()+""});
    }
    //删除联系人
    public boolean delete(User user){

        return db.delete("contact","Id=?",new String[]{user.getId()+""});
    }
    //读取联系人
    public User[] read(){
        Vector<User> v=new Vector<User>();
        Cursor cursor=null;
        try{
            cursor=db.find("select * from contact",null);
            while(cursor.moveToNext()){
                User user=new User();
                user.setId(cursor.getInt(cursor.getColumnIndex("Id")));
                user.setName(cursor.getString(cursor.getColumnIndex("name")));
                user.setCompany(cursor.getString(cursor.getColumnIndex("company")));
                user.setPosition(cursor.getString(cursor.getColumnIndex("position")));
                user.setPhone(cursor.getString(cursor.getColumnIndex("phone")));
                user.setQq(cursor.getString(cursor.getColumnIndex("qq")));
                user.setAddress(cursor.getString(cursor.getColumnIndex("address")));
                v.add(user);
            }
        }catch (Exception e){
            e.printStackTrace();
        }finally {
            if(cursor!=null){
                cursor.close();
            }
            db.closeConnection();
        }
        if(v.size()>0){
            return v.toArray(new User[] {});
        }else{
            User[] users=new User[1];
            User user=new User();
            user.setName("无结果");
            users[0]=user;
            return users;
        }

    }
    //根据id查找
    public User findById(int id){
        Cursor cursor=null;
        try{
            cursor=db.find("select * from contact where Id="+id+"",null);
            if(cursor.moveToFirst()) {
                User user = new User();
                user.setId(cursor.getInt(cursor.getColumnIndex("Id")));
                user.setName(cursor.getString(cursor.getColumnIndex("name")));
                user.setCompany(cursor.getString(cursor.getColumnIndex("company")));
                user.setPosition(cursor.getString(cursor.getColumnIndex("position")));
                user.setPhone(cursor.getString(cursor.getColumnIndex("phone")));
                user.setQq(cursor.getString(cursor.getColumnIndex("qq")));
                user.setAddress(cursor.getString(cursor.getColumnIndex("address")));
                return user;
            }

        }catch (Exception e){
            e.printStackTrace();
        }finally {
            if(cursor!=null){
                cursor.close();
            }
            db.closeConnection();
        }

            return null;

    }
    //查找
    public User[] find(String key){
        Vector<User> v=new Vector<User>();
        Cursor cursor=null;
        try{
            cursor=db.find("select * from contact where name like"+
                    "'%"+key+"%' or company like '%"+key+"%' or position like '%"+key+"%'"+
                    "or phone like '%"+key+"%' or qq like '%"+key+"%' ",null);
            while(cursor.moveToNext()){
                User user=new User();
                user.setId(cursor.getInt(cursor.getColumnIndex("Id")));
                user.setName(cursor.getString(cursor.getColumnIndex("name")));
                user.setCompany(cursor.getString(cursor.getColumnIndex("company")));
                user.setPosition(cursor.getString(cursor.getColumnIndex("position")));
                user.setPhone(cursor.getString(cursor.getColumnIndex("phone")));
                user.setQq(cursor.getString(cursor.getColumnIndex("qq")));
                user.setAddress(cursor.getString(cursor.getColumnIndex("address")));
                v.add(user);
            }
        }catch (Exception e){
            e.printStackTrace();
        }finally {
            if(cursor!=null){
                cursor.close();
            }
            db.closeConnection();
        }
        if(v.size()>0){
            return v.toArray(new User[] {});
        }else{
            User[] users=new User[1];
            User user=new User();
            user.setName("无结果");
            users[0]=user;
            return users;
        }


    }
}

9、ADD.class

package com.example.addressbook;

import androidx.appcompat.app.AppCompatActivity;

import android.os.Bundle;
import android.view.Menu;
import android.view.MenuItem;
import android.widget.EditText;
import android.widget.Switch;
import android.widget.Toast;

public class Add extends AppCompatActivity {
    private EditText name;
    private EditText company;
    private EditText position;
    private EditText phone;
    private EditText qq;
    private EditText address;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_add);
        setTitle("添加联系人");
        name=(EditText)findViewById(R.id.name);
        company=(EditText)findViewById(R.id.company);
        position=(EditText)findViewById(R.id.position);
        phone=(EditText)findViewById(R.id.phone);
        qq=(EditText)findViewById(R.id.qq);
        address=(EditText)findViewById(R.id.address);
    }
    public boolean  onCreateOptionsMenu(Menu menu){
        menu.add(Menu.NONE,1,Menu.NONE,"保存");
        menu.add(Menu.NONE,2,Menu.NONE,"返回");
        return super.onCreateOptionsMenu(menu);
    }
    public boolean onOptionsItemSelected(MenuItem item) {
        switch (item.getItemId()) {
            case 1:
                if (!name.getText().toString().equals("")) {
                    User user = new User();
                    user.setName(name.getText().toString());
                    user.setCompany(company.getText().toString());
                    user.setPosition(position.getText().toString());
                    user.setPhone(phone.getText().toString());
                    user.setQq(qq.getText().toString());
                    user.setQq(address.getText().toString());
                    ContactsTable contactsTable = new ContactsTable(Add.this);
                    if (contactsTable.add(user)) {
                        Toast.makeText(Add.this, "添加成功", Toast.LENGTH_SHORT).show();

                        finish();
                    } else {
                        Toast.makeText(Add.this, "添加失败", Toast.LENGTH_SHORT).show();
                    }
                }
                break;
            case 2:finish();
            break;
            default:break;

        }
        return super.onOptionsItemSelected(item);
    }
}

10、Update.class

package com.example.addressbook;

import androidx.appcompat.app.AppCompatActivity;

import android.os.Bundle;
import android.view.Menu;
import android.view.MenuItem;
import android.widget.EditText;
import android.widget.Toast;

public class Update extends AppCompatActivity {
    private EditText name;
    private EditText company;
    private EditText position;
    private EditText phone;
    private EditText qq;
    private EditText address;
    private User user;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_add);
        setTitle("修改联系人");
        name=(EditText)findViewById(R.id.name);
        company=(EditText)findViewById(R.id.company);
        position=(EditText)findViewById(R.id.position);
        phone=(EditText)findViewById(R.id.phone);
        qq=(EditText)findViewById(R.id.qq);
        address=(EditText)findViewById(R.id.address);
        Bundle bundle=getIntent().getExtras();
        int id=bundle.getInt("Id");
        ContactsTable contactsTable=new ContactsTable(this);
        user=contactsTable.findById(id);
        name.setText(user.getName());
        company.setText(user.getCompany());
        position.setText(user.getPosition());
        phone.setText(user.getPhone());
        qq.setText(user.getPhone());
        address.setText(user.getAddress());
    }

    public boolean  onCreateOptionsMenu(Menu menu){
        menu.add(Menu.NONE,1,Menu.NONE,"保存");
        menu.add(Menu.NONE,2,Menu.NONE,"返回");
        return super.onCreateOptionsMenu(menu);
    }
    public boolean onOptionsItemSelected(MenuItem item) {
        switch (item.getItemId()) {
            case 1:
                if (!name.getText().toString().equals("")) {
                    user.setName(name.getText().toString());
                    user.setCompany(company.getText().toString());
                    user.setPosition(position.getText().toString());
                    user.setPhone(phone.getText().toString());
                    user.setQq(qq.getText().toString());
                    user.setQq(address.getText().toString());
                    ContactsTable contactsTable = new ContactsTable(Update.this);
                    if (contactsTable.update(user)) {
                        Toast.makeText(Update.this, "修改成功", Toast.LENGTH_SHORT).show();
                        finish();
                    } else {
                        Toast.makeText(Update.this, "修改失败", Toast.LENGTH_SHORT).show();
                    }
                }
                else{
                    Toast.makeText(Update.this, "姓名不可为空", Toast.LENGTH_SHORT).show();
                }
                break;
            case 2:finish();
                break;
            default:break;

        }
        return super.onOptionsItemSelected(item);
    }
}

11、check.class

package com.example.addressbook;

import androidx.appcompat.app.AppCompatActivity;

import android.content.Intent;
import android.net.Uri;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuItem;
import android.widget.EditText;
import android.widget.TextView;
import android.widget.Toast;

public class Check extends AppCompatActivity {
    private TextView name;
    private TextView company;
    private TextView position;
    private TextView phone;
    private TextView qq;
    private TextView address;
    private User user;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_check);
        name=(TextView) findViewById(R.id.name);
        company=(TextView)findViewById(R.id.company);
        position=(TextView)findViewById(R.id.position);
        phone=(TextView)findViewById(R.id.phone);
        qq=(TextView)findViewById(R.id.qq);
        address=(TextView)findViewById(R.id.address);
        Bundle bundle=getIntent().getExtras();
        int id=bundle.getInt("Id");
        ContactsTable contactsTable=new ContactsTable(this);
        user=contactsTable.findById(id);
        name.setText(user.getName());
        company.setText(user.getCompany());
        position.setText(user.getPosition());
        phone.setText(user.getPhone());
        qq.setText(user.getPhone());
        address.setText(user.getAddress());
    }
    public boolean  onCreateOptionsMenu(Menu menu){
        menu.add(Menu.NONE,1,Menu.NONE,"编辑");
        menu.add(Menu.NONE,2,Menu.NONE,"拨打电话");
        menu.add(Menu.NONE,3,Menu.NONE,"发送短信");
        menu.add(Menu.NONE,4,Menu.NONE,"返回");
        return super.onCreateOptionsMenu(menu);
    }
    public boolean onOptionsItemSelected(MenuItem item) {
        switch (item.getItemId()) {
            case 1:
                Intent  intent=new Intent(Check.this,Update.class);
                intent.putExtra("Id",user.getId());
                startActivity(intent);
                break;
            case 2:
                Intent call_intent = new Intent(Intent.ACTION_DIAL, Uri.parse("tel:"+user.getPhone()));
                call_intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
                startActivity(call_intent);
                break;
            case 3:
                Uri uri = Uri.parse("smsto:" + user.getPhone());
                Intent sendIntent = new Intent(Intent.ACTION_SENDTO, uri);
                sendIntent.putExtra("sms_body", "");
                startActivity(sendIntent);
                break;
            case 4:
                finish();
                break;
            default:break;


        }

        return super.onOptionsItemSelected(item);
    }
}
  • 5
    点赞
  • 27
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值