基于Android+SQLite的通讯录APP开发

通讯录APP功能说明:

APP需要实现如下功能:

a.普通用户:

(1)用户管理。包括用户注册,用户登录、用户信息管理。

(2)显示联系人。用户登录成功后,可以显示所有该用户的联系人。

(3)添加联系人。用户登录成功后,可增加和用户联系人。

(4)查找联系人。用户登录成功后,可以精确查找指定联系人或按类别查找联系人。

(5)删除指定条件联系人。用户登录成功后,可以删除用户个人相关的联系人。

(6)修改联系人信息。用户登录成功后,可以修改用户相关的联系人信息。

b.管理员用户:

对系统的用户进行管理。包括重置密码、注销用户等功能。

效果展示

MySQLiteOpenHelper.java

源码在资源处可下载

https://download.csdn.net/download/2302_79553009/89665188

登录与注册

JAVA

Mainactivity.java

package com.example.addressbook;

import androidx.appcompat.app.AppCompatActivity;

import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;

import com.example.addressbook.Util.ToastUtil;

public class MainActivity extends AppCompatActivity {

    private Button login,reset;
    private TextView register;
    private EditText edName,edPassword;
    private MySQLiteOpenHelper mySQLiteOpenHelper;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        mySQLiteOpenHelper = new MySQLiteOpenHelper(this);
        init();
    }

    public void init(){
        login = findViewById(R.id.login);
        register = findViewById(R.id.register);
        edName = findViewById(R.id.edName);
        edPassword = findViewById(R.id.edPassword);
        reset = findViewById(R.id.reset);

    }

    public void login(View view) {
        String name = edName.getText().toString().trim();
        String password = edPassword.getText().toString().trim();

        int login = mySQLiteOpenHelper.U_login(name,password);
        if(login == 1){
            ToastUtil.toastShort(this,"登录成功!欢迎管理员!");
            Intent intent = new Intent(this,ManagerAbActivity.class);
            startActivity(intent);
        }else if(login == 2){
            ToastUtil.toastShort(this,"登录成功!欢迎会员!");
            Intent intent = new Intent(this,UserAbActivity.class);
            startActivity(intent);
        }else{
            ToastUtil.toastShort(this,"登录失败");
        }
    }

    public void register(View view) {
        Intent intent = new Intent(this, RegisterActivity.class);
        startActivity(intent);
    }

    public void reset(View view) {
        edName.setText("");
        edPassword.setText("");
    }

}

Register.java

package com.example.addressbook;

import androidx.appcompat.app.AppCompatActivity;

import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;

import com.example.addressbook.Util.ToastUtil;
import com.example.addressbook.bean.User;

public class RegisterActivity extends AppCompatActivity {

    private EditText name1,password1;
    private TextView l;
    private TextView register;
    private Button reset;
    private MySQLiteOpenHelper mySQLiteOpenHelper;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_register);
        mySQLiteOpenHelper = new MySQLiteOpenHelper(this);
        init();
    }

    public void init(){
        name1 = findViewById(R.id.edName);
        password1 = findViewById(R.id.edPassword);
        register = findViewById(R.id.register);
        l = findViewById(R.id.L);
        reset = findViewById(R.id.reset);
    }
    public void register(View view) {
        String name = name1.getText().toString().trim();
        String password = password1.getText().toString().trim();

        User u = new User(name,password);
        long r = mySQLiteOpenHelper.U_register(u);
        if(r!=-1){
            ToastUtil.toastShort(this,"注册成功");
            Intent intent = new Intent(this,MainActivity.class);
            startActivity(intent);
        }else{
            ToastUtil.toastShort(this,"注册失败");
        }
    }

    public void Log(View view) {
        Intent intent = new Intent(this,MainActivity.class);
        startActivity(intent);
    }

    public void reset(View view) {
        name1.setText("");
        password1.setText("");
    }
}

XML

activity_main.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context=".MainActivity"
    android:orientation="vertical"
    android:background="@drawable/bg">

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="150dp"
        android:orientation="horizontal"
        android:layout_marginTop="30dp"
        android:gravity="center">

        <ImageView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:src="@drawable/icon"
            android:layout_gravity="center"/>
        <ImageView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:src="@drawable/title"
            android:layout_marginTop="10dp"
            android:layout_gravity="center"/>
    </LinearLayout>

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="80dp"
        android:orientation="horizontal"
        android:gravity="center">

        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_marginRight="50dp"
            android:text="用户登录"
            android:textSize="32sp"
            android:textColor="@color/pink"
            android:textStyle="bold"/>
        <TextView
            android:id="@+id/register"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="用户注册"
            android:textSize="32sp"
            android:textColor="@color/lblue"
            android:textStyle="bold"
            android:onClick="register"/>

    </LinearLayout>

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="50dp"
        android:orientation="horizontal"
        android:gravity="center"
        android:layout_marginTop="20dp">
        <TextView
            android:id="@+id/name"
            android:layout_width="wrap_content"
            android:layout_height="match_parent"
            android:text="账号:"
            android:textSize="30sp"
            android:textStyle="bold"
            android:textColor="@color/grey"/>
        <EditText
            android:id="@+id/edName"
            android:layout_width="250dp"
            android:layout_height="match_parent"
            android:layout_marginLeft="10dp"
            android:gravity="center"
            android:background="@drawable/edittext_border"/>
    </LinearLayout>
    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="50dp"
        android:orientation="horizontal"
        android:gravity="center"
        android:layout_marginTop="30dp">
        <TextView
            android:id="@+id/password"
            android:layout_width="wrap_content"
            android:layout_height="match_parent"
            android:textStyle="bold"
            android:text="密码:"
            android:textSize="30sp"
            android:textColor="@color/grey"/>
        <EditText
            android:id="@+id/edPassword"
            android:layout_width="250dp"
            android:layout_height="match_parent"
            android:layout_marginLeft="10dp"
            android:gravity="center"
            android:background="@drawable/edittext_border"/>
    </LinearLayout>
    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:orientation="horizontal"
        android:layout_marginTop="50dp"
        android:gravity="center">

        <Button
            android:id="@+id/login"
            android:layout_width="160dp"
            android:layout_height="60dp"
            android:text="登录"
            android:textColor="@color/white"
            android:textSize="28sp"
            android:background="@drawable/round_button"
            android:textStyle="bold"
            android:onClick="login"/>
        <Button
            android:id="@+id/reset"
            android:layout_width="160dp"
            android:layout_height="60dp"
            android:textColor="@color/white"
            android:text="重置"
            android:textSize="28sp"
            android:background="@drawable/round_button"
            android:textStyle="bold"
            android:layout_marginLeft="20dp"
            android:onClick="reset"/>

    </LinearLayout>




</LinearLayout>

activity_register.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context=".RegisterActivity"
    android:orientation="vertical"
    android:background="@drawable/bg">
    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="150dp"
        android:orientation="horizontal"
        android:layout_marginTop="30dp"
        android:gravity="center">

        <ImageView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:src="@drawable/icon"
            android:layout_gravity="center"/>
        <ImageView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:src="@drawable/title"
            android:layout_marginTop="10dp"
            android:layout_gravity="center"/>
    </LinearLayout>
    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="80dp"
        android:orientation="horizontal"
        android:gravity="center">

        <TextView
            android:id="@+id/L"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_marginRight="50dp"
            android:text="用户登录"
            android:textSize="32sp"
            android:textColor="@color/lblue"
            android:textStyle="bold"
            android:onClick="Log"/>
        <TextView

            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="用户注册"
            android:textSize="32sp"
            android:textColor="@color/pink"
            android:textStyle="bold"
            android:onClick="register"/>

    </LinearLayout>

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="50dp"
        android:orientation="horizontal"
        android:gravity="center"
        android:layout_marginTop="20dp">
        <TextView
            android:id="@+id/name"
            android:layout_width="wrap_content"
            android:layout_height="match_parent"
            android:text="账号:"
            android:textSize="30sp"
            android:textStyle="bold"
            android:textColor="@color/grey"/>
        <EditText
            android:id="@+id/edName"
            android:layout_width="250dp"
            android:layout_height="match_parent"
            android:layout_marginLeft="10dp"
            android:gravity="center"
            android:background="@drawable/edittext_border"/>
    </LinearLayout>
    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="50dp"
        android:orientation="horizontal"
        android:gravity="center"
        android:layout_marginTop="30dp">
        <TextView
            android:id="@+id/password"
            android:layout_width="wrap_content"
            android:layout_height="match_parent"
            android:textStyle="bold"
            android:text="密码:"
            android:textSize="30sp"
            android:textColor="@color/grey"/>
        <EditText
            android:id="@+id/edPassword"
            android:layout_width="250dp"
            android:layout_height="match_parent"
            android:layout_marginLeft="10dp"
            android:gravity="center"
            android:background="@drawable/edittext_border"/>
    </LinearLayout>
    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:orientation="horizontal"
        android:layout_marginTop="50dp"
        android:gravity="center">

        <Button
            android:id="@+id/register"
            android:layout_width="160dp"
            android:layout_height="60dp"
            android:text="确定注册"
            android:textSize="28sp"
            android:textColor="@color/white"
            android:background="@drawable/round_button"
            android:textStyle="bold"
            android:onClick="register"/>
        <Button
            android:id="@+id/reset"
            android:layout_width="160dp"
            android:layout_height="60dp"
            android:textColor="@color/white"
            android:text="重置"
            android:textSize="28sp"
            android:background="@drawable/round_button"
            android:textStyle="bold"
            android:layout_marginLeft="20dp"
            android:onClick="reset"/>
    </LinearLayout>

</LinearLayout>

用户端

联系人展示

java

UserAbActivity.java
package com.example.addressbook;

import androidx.appcompat.app.AppCompatActivity;
import androidx.appcompat.widget.Toolbar;

import android.content.Intent;
import android.os.Bundle;
import android.text.Editable;
import android.text.TextWatcher;
import android.view.MotionEvent;
import android.view.View;
import android.widget.EditText;
import android.widget.ListView;

import com.example.addressbook.adapter.PeopleAdapter;
import com.example.addressbook.bean.People;
import com.example.addressbook.dao.PeopleDao;

import java.util.Comparator;
import java.util.List;

public class UserAbActivity extends AppCompatActivity {

    private MySQLiteOpenHelper mySQLiteOpenHelper;
    private EditText search;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_user_ab);

        Toolbar toolbar = this.findViewById(R.id.toolbar);
        mySQLiteOpenHelper = new MySQLiteOpenHelper(this);


        //加载列表

        List<People> result = mySQLiteOpenHelper.getAllPeople();
        ListView listView = findViewById(R.id.book);

        if(result.size()==0){
            listView.setAdapter(null);//无显示
        }else{
            //需要对list按字母进行排序

            result.sort(new Comparator<People>() {
                @Override
                public int compare(People people, People t1) {
                    return people.getBeginLetter().compareTo(t1.getBeginLetter());
                }
            });

            PeopleAdapter peopleAdapter = new PeopleAdapter(UserAbActivity.this,result);
            listView.setAdapter(peopleAdapter);
        }
        init();

        //搜索功能

        search.setOnTouchListener(new View.OnTouchListener() {
            @Override
            public boolean onTouch(View view, MotionEvent motionEvent) {
                listView.setAdapter(null);

                String title = search.getText().toString();
                List<People> temp = null;
                if(title.isEmpty()){
                    temp = mySQLiteOpenHelper.getAllPeople();
                }else{
                    temp = mySQLiteOpenHelper.getAllPeople(title);
                }
                temp.sort(new Comparator<People>() {
                    @Override
                    public int compare(People people, People t1) {
                        return people.getBeginLetter().compareTo(t1.getBeginLetter());
                    }
                });

                PeopleAdapter peopleAdapter = new PeopleAdapter(UserAbActivity.this,temp);
                listView.setAdapter(peopleAdapter);

                return false;
            }
        });
        search.addTextChangedListener(new TextWatcher() {
            @Override
            public void beforeTextChanged(CharSequence charSequence, int i, int i1, int i2) {

            }

            @Override
            public void onTextChanged(CharSequence charSequence, int i, int i1, int i2) {

            }

            @Override
            public void afterTextChanged(Editable editable) {
                listView.setAdapter(null);

                String title = search.getText().toString();
                List<People> temp = null;
                if(title.isEmpty()){
                    temp = mySQLiteOpenHelper.getAllPeople();
                }else{
                    temp = mySQLiteOpenHelper.getAllPeople(title);
                }
                temp.sort(new Comparator<People>() {
                    @Override
                    public int compare(People people, People t1) {
                        return people.getBeginLetter().compareTo(t1.getBeginLetter());
                    }
                });

                PeopleAdapter peopleAdapter = new PeopleAdapter(UserAbActivity.this,temp);
                listView.setAdapter(peopleAdapter);
            }
        });



    }



    public void init(){
        search = findViewById(R.id.search);
    }






    public void details(View view) {



//        Intent intent = new Intent(UserAbActivity.this,DetailsActivity.class);
//        intent.putExtra("id",people.getId());
//        startActivity(intent);
    }

    public void addData(View view) {
        Intent intent = new Intent(UserAbActivity.this,AddActivity.class);
        startActivity(intent);

    }
}

xml

activity_user_ab.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context=".UserAbActivity"
    android:orientation="vertical"
    android:background="@color/white">

    <androidx.appcompat.widget.Toolbar
        android:id="@+id/toolbar"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        app:title="通讯录"
        app:titleTextColor="@color/dark"/>

   <EditText
       android:id="@+id/search"
       android:layout_width="match_parent"
       android:layout_height="wrap_content"
       android:hint="搜索联系人"
       android:background="@drawable/search_border"
       android:padding="9dp"
       android:layout_marginLeft="20dp"
       android:layout_marginRight="20dp"
       android:drawableLeft="@drawable/search"/>


    <ListView
        android:id="@+id/book"
        android:layout_width="match_parent"
        android:layout_height="550dp"
        android:divider="#000000" />

    <com.google.android.material.floatingactionbutton.FloatingActionButton
        android:id="@+id/add"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        app:backgroundTint="#dd0288D1"
        app:elevation="6dp"
        app:srcCompat="@drawable/add"
        android:layout_gravity="center"
        android:layout_marginLeft="150dp"
        android:clickable="true"
        android:focusable="true"
        android:layout_marginTop="15dp"
        android:onClick="addData"

        />






</LinearLayout>

book_style.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="horizontal"
    android:padding="16dp">

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:orientation="vertical">

        <TextView
            android:id="@+id/letter"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:background="@color/grey"

            android:paddingLeft="10dp"/>

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

            <ImageView
                android:id="@+id/picture"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:src="@drawable/man"/>

            <LinearLayout
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:orientation="vertical"
                android:layout_marginLeft="10dp">

                <TextView
                    android:id="@+id/number"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:text="12345678912"
                    android:textSize="16sp"
                    android:textColor="@color/black"
                    android:textStyle="bold"/>
                <TextView
                    android:id="@+id/name"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:text="张三"/>

            </LinearLayout>

            <ImageView
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:src="@drawable/arrow"
                android:layout_gravity="center"
                android:layout_marginLeft="200dp"
                android:onClick="details"/>

        </LinearLayout>


    </LinearLayout>


</LinearLayout>

联系人详情

java

 DetailsActivity.java
package com.example.addressbook;

import androidx.appcompat.app.AppCompatActivity;

import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.widget.ImageView;
import android.widget.TextView;

import com.example.addressbook.Util.ToastUtil;
import com.example.addressbook.bean.People;

public class DetailsActivity extends AppCompatActivity {

    private ImageView head;
    private TextView detail_name;
    private TextView detail_number;
    private TextView detail_remark;
    private TextView detail_sex;
    private MySQLiteOpenHelper mySQLiteOpenHelper;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_details);

        mySQLiteOpenHelper = new MySQLiteOpenHelper(this);
        init();


        //详情信息同步
        String id = getIntent().getStringExtra("id");
        People people = mySQLiteOpenHelper.getOnePeople(id);


        //根据性别设置头像
        if(people.getSex().equals("男")){
            head.setImageResource(R.drawable.details_man);
        }else{
            head.setImageResource(R.drawable.details_woman);
        }

        //设置名字

        detail_name.setText(people.getName());
        detail_number.setText(people.getPhoneNumber());
        detail_sex.setText(people.getSex());
        detail_remark.setText(people.getRemark());

    }

    private void init(){
        head = findViewById(R.id.head);
        detail_name = findViewById(R.id.detail_name);
        detail_number = findViewById(R.id.detail_number);
        detail_remark = findViewById(R.id.detail_remark);
        detail_sex = findViewById(R.id.detail_sex);
    }




    public void details_delete(View view) {
        String id = getIntent().getStringExtra("id");

        mySQLiteOpenHelper.dl_delete(id);
        ToastUtil.toastShort(DetailsActivity.this,"联系人删除成功!");
        Intent intent = new Intent(DetailsActivity.this,UserAbActivity.class);
        startActivity(intent);
    }

    public void details_update(View view) {
        String id = getIntent().getStringExtra("id");

        Intent intent = new Intent(DetailsActivity.this,UpdateActivity.class);
        intent.putExtra("id",id);
        startActivity(intent);
    }



}

xml

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

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="300dp"
        android:orientation="vertical"
        android:background="@drawable/details_bg">

        <ImageView
            android:id="@+id/head"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:src="@drawable/details_man"
            android:padding="20dp"
            android:layout_marginTop="20dp"/>
        <TextView
            android:id="@+id/detail_name"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:textColor="@color/black"
            android:textStyle="bold"
            android:textSize="32sp"
            android:text="张三"
            android:layout_marginLeft="55dp"/>

    </LinearLayout>
    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="430dp"
        android:orientation="vertical"
        android:background="#ccf5e4">

        <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="80dp"
            android:orientation="horizontal">

            <TextView
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="电话:"
                android:textColor="@color/lblue"
                android:textStyle="bold"
                android:textSize="30sp"
                android:layout_marginLeft="20dp"
                android:layout_marginTop="20dp"/>
            <TextView
                android:id="@+id/detail_number"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="12345678912"
                android:textColor="@color/black"
                android:textStyle="bold"
                android:textSize="30sp"
                android:layout_marginLeft="20dp"
                android:layout_marginTop="20dp"/>

            <Button
                android:id="@+id/detail_phone"
                android:layout_width="40dp"
                android:layout_height="40dp"
                android:background="@drawable/details_phone"
                android:layout_marginTop="15dp"
                android:layout_marginLeft="20dp"
                android:foreground="?selectableItemBackground"/>
            <Button
                android:id="@+id/detail_sms"
                android:layout_width="40dp"
                android:layout_height="40dp"
                android:background="@drawable/details_sms"
                android:layout_marginTop="15dp"
                android:layout_marginLeft="10dp"
                android:foreground="?selectableItemBackground"/>

        </LinearLayout>

        <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="80dp"
            android:orientation="horizontal">

            <TextView
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="性别:"
                android:textColor="@color/lblue"
                android:textStyle="bold"
                android:textSize="30sp"
                android:layout_marginLeft="20dp"
                android:layout_marginTop="20dp"/>
            <TextView
                android:id="@+id/detail_sex"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="男"
                android:textColor="@color/black"
                android:textStyle="bold"
                android:textSize="30sp"
                android:layout_marginLeft="20dp"
                android:layout_marginTop="20dp"/>


        </LinearLayout>

        <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="80dp"
            android:orientation="horizontal">

            <TextView
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="备注:"
                android:textColor="@color/lblue"
                android:textStyle="bold"
                android:textSize="30sp"
                android:layout_marginLeft="20dp"
                android:layout_marginTop="20dp"/>
            <TextView
                android:id="@+id/detail_remark"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="Android开发工程师"
                android:textColor="@color/black"
                android:textStyle="bold"
                android:textSize="30sp"
                android:layout_marginLeft="20dp"
                android:layout_marginTop="20dp"/>


        </LinearLayout>
        <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="200dp"
            android:orientation="horizontal"
            android:gravity="center">

            <Button
                android:id="@+id/detail_delete"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:background="@drawable/round_button"
                android:text="删除"
                android:textSize="24sp"
                android:textStyle="bold"
                android:layout_gravity="center"
                android:layout_marginRight="50dp"
                android:onClick="details_delete"
                android:foreground="?selectableItemBackground"/>
            <Button
                android:id="@+id/detail_update"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:background="@drawable/round_button"
                android:text="编辑"
                android:textSize="24sp"
                android:textStyle="bold"
                android:layout_gravity="center"
                android:onClick="details_update"
                android:foreground="?selectableItemBackground"/>
        </LinearLayout>



    </LinearLayout>
</LinearLayout>

联系人信息修改

java

 AddActivity.java
package com.example.addressbook;

import androidx.appcompat.app.AppCompatActivity;

import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.widget.EditText;
import android.widget.RadioButton;

import com.example.addressbook.Util.ToastUtil;

public class AddActivity extends AppCompatActivity {

    private EditText add_name,add_number,add_remark;
    private RadioButton rb_man,rb_woman;

    private MySQLiteOpenHelper mySQLiteOpenHelper;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_add);

        mySQLiteOpenHelper = new MySQLiteOpenHelper(this);

        init();
    }

    private void init(){
        add_name=findViewById(R.id.add_name);
        add_number=findViewById(R.id.add_number);
        add_remark=findViewById(R.id.add_remark);
        rb_man=findViewById(R.id.rb_man);
        rb_woman=findViewById(R.id.rb_woman);
    }

    public void im_add(View view) {

        Intent intent = getIntent();
        String id = intent.getStringExtra("id");

        String name=add_name.getText().toString().trim();
        String number=add_number.getText().toString().trim();
        String remark=add_remark.getText().toString().trim();

        if(name.isEmpty()){
            ToastUtil.toastShort(AddActivity.this,"请输入姓名!");
        }else if(number.isEmpty()){
            ToastUtil.toastShort(AddActivity.this,"请输入手机号!");
        }else if(remark.isEmpty()){
            ToastUtil.toastShort(AddActivity.this,"请输入备注!");
        }
        String sex="女";
        if(rb_man.isChecked()){
            sex="男";
        }

        mySQLiteOpenHelper.add_data(name,number,sex,remark);
        ToastUtil.toastShort(AddActivity.this,"添加成功");


    }
}
updateActivity.java
package com.example.addressbook;

import androidx.appcompat.app.AppCompatActivity;

import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.widget.EditText;
import android.widget.RadioButton;

import com.example.addressbook.Util.ToastUtil;
import com.example.addressbook.bean.People;

public class UpdateActivity extends AppCompatActivity {

    private EditText up_name,up_number,up_remark;
    private RadioButton rb_man,rb_woman;

    private MySQLiteOpenHelper mySQLiteOpenHelper;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_updateactivity);
        mySQLiteOpenHelper = new MySQLiteOpenHelper(this);

        init();

        Intent intent = getIntent();
        String id = intent.getStringExtra("id");

        People people=mySQLiteOpenHelper.getOnePeople(id);

        up_name.setText(people.getName());
        up_number.setText(people.getPhoneNumber());
        if(people.getSex().equals("男")){
            rb_man.setChecked(true);
        }else{
            rb_woman.setChecked(true);
        }

        up_remark.setText(people.getRemark());



    }

    private void init(){
        up_name=findViewById(R.id.up_name);
        up_number=findViewById(R.id.up_number);
        up_remark=findViewById(R.id.up_remark);
        rb_man=findViewById(R.id.rb_man);
        rb_woman=findViewById(R.id.rb_woman);
    }




    public void im_update(View view) {

        Intent intent = getIntent();
        String id = intent.getStringExtra("id");

        String name=up_name.getText().toString().trim();
        String number=up_number.getText().toString().trim();
        String sex="女";
        if(rb_man.isChecked()){
            sex="男";
        }
        String remark=up_remark.getText().toString().trim();

        if(name.isEmpty()){
            ToastUtil.toastShort(UpdateActivity.this,"请输入姓名!");
        }else if(number.isEmpty()){
            ToastUtil.toastShort(UpdateActivity.this,"请输入手机号!");
        }else if(remark.isEmpty()){
            ToastUtil.toastShort(UpdateActivity.this,"请输入备注!");
        }

        Intent intent1 = new Intent(UpdateActivity.this,UserAbActivity.class);
        startActivity(intent1);

        mySQLiteOpenHelper.updateData(name,number,sex,remark,id);
        ToastUtil.toastShort(UpdateActivity.this,"更改成功");




//        People people = new People();
//        people.setName(name);
//        people.setPhoneNumber(number);
//        people.setRemark(remark);
//        people.setSex(sex);
//
//        long rowId = mySQLiteOpenHelper.updateData(people);
//        if(rowId>0){
//            //工具类ToastUtil的使用
//            Intent intent = new Intent(UpdateActivity.this,DetailsActivity.class);
//            startActivity(intent);
//            ToastUtil.toastShort(this,"更新成功!");
//        }else{
//            ToastUtil.toastShort(this,"没有数据被更新!");
//        }



    }
}

xml

 activity_add.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context=".AddActivity"
    android:orientation="vertical"
    android:background="@drawable/update_bg">

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="150dp"
        android:orientation="horizontal"
        android:layout_marginTop="30dp"
        android:gravity="center">

        <ImageView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:src="@drawable/icon"
            android:layout_gravity="center"/>
        <ImageView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:src="@drawable/title"
            android:layout_marginTop="10dp"
            android:layout_gravity="center"/>
    </LinearLayout>

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

        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:maxLines="1"
            style="@style/MyTextStyle"
            android:text="姓名"
            android:textStyle="bold"/>
        <EditText
            android:id="@+id/add_name"
            android:layout_width="match_parent"
            android:layout_height="50dp"
            android:textSize="18sp"
            android:layout_marginLeft="10dp"
            android:gravity="center"
            android:inputType="text"
            android:background="@drawable/up_edittext_border"/>

    </LinearLayout>

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

        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:maxLines="1"
            android:inputType="number"
            style="@style/MyTextStyle"
            android:text="电话"
            android:textStyle="bold"/>
        <EditText
            android:id="@+id/add_number"
            android:layout_width="match_parent"
            android:layout_height="50dp"
            android:textSize="18sp"
            android:layout_marginLeft="10dp"
            android:gravity="center"
            android:inputType="text"
            android:background="@drawable/up_edittext_border"/>

    </LinearLayout>

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

        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:maxLines="1"
            style="@style/MyTextStyle"
            android:text="性别"
            android:textStyle="bold"/>

        <RadioGroup
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:orientation="horizontal"
            android:gravity="center"
            android:layout_marginTop="10dp">
            <RadioButton
                android:id="@+id/rb_man"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="男"/>
            <RadioButton
                android:id="@+id/rb_woman"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="女"
                android:layout_marginLeft="30dp"/>
        </RadioGroup>


    </LinearLayout>

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

        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:maxLines="1"
            style="@style/MyTextStyle"
            android:text="备注"
            android:textStyle="bold"/>
        <EditText
            android:id="@+id/add_remark"
            android:layout_width="match_parent"
            android:layout_height="50dp"
            android:textSize="18sp"
            android:layout_marginLeft="10dp"
            android:gravity="center"
            android:inputType="text"
            android:background="@drawable/up_edittext_border"/>

    </LinearLayout>

    <Button
        android:text="添加"
        android:onClick="im_add"
        style="@style/MyButton"
        android:background="@drawable/round_button"
        android:layout_marginTop="30dp"
        />

</LinearLayout>
activity_update.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context=".UpdateActivity"
    android:orientation="vertical"
    android:background="@drawable/update_bg">

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="150dp"
        android:orientation="horizontal"
        android:layout_marginTop="30dp"
        android:gravity="center">

        <ImageView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:src="@drawable/icon"
            android:layout_gravity="center"/>
        <ImageView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:src="@drawable/title"
            android:layout_marginTop="10dp"
            android:layout_gravity="center"/>
    </LinearLayout>

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

        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:maxLines="1"
            style="@style/MyTextStyle"
            android:text="姓名"
            android:textStyle="bold"/>
        <EditText
            android:id="@+id/up_name"
            android:layout_width="match_parent"
            android:layout_height="50dp"
            android:textSize="18sp"
            android:layout_marginLeft="10dp"
            android:gravity="center"
            android:inputType="text"
            android:background="@drawable/up_edittext_border"/>

    </LinearLayout>

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

        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:maxLines="1"
            android:inputType="number"
            style="@style/MyTextStyle"
            android:text="电话"
            android:textStyle="bold"/>
        <EditText
            android:id="@+id/up_number"
            android:layout_width="match_parent"
            android:layout_height="50dp"
            android:textSize="18sp"
            android:layout_marginLeft="10dp"
            android:gravity="center"
            android:inputType="text"
            android:background="@drawable/up_edittext_border"/>

    </LinearLayout>

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

        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:maxLines="1"
            style="@style/MyTextStyle"
            android:text="性别"
            android:textStyle="bold"/>

        <RadioGroup
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:orientation="horizontal"
            android:gravity="center"
            android:layout_marginTop="10dp">
            <RadioButton
                android:id="@+id/rb_man"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="男"/>
            <RadioButton
                android:id="@+id/rb_woman"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="女"
                android:layout_marginLeft="30dp"/>
        </RadioGroup>


    </LinearLayout>

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

        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:maxLines="1"
            style="@style/MyTextStyle"
            android:text="备注"
            android:textStyle="bold"/>
        <EditText
            android:id="@+id/up_remark"
            android:layout_width="match_parent"
            android:layout_height="50dp"
            android:textSize="18sp"
            android:layout_marginLeft="10dp"
            android:gravity="center"
            android:inputType="text"
            android:background="@drawable/up_edittext_border"/>

    </LinearLayout>

    <Button
        android:text="修改"
        android:onClick="im_update"
        style="@style/MyButton"
        android:background="@drawable/round_button"
        android:layout_marginTop="30dp"
        />

</LinearLayout>

管理员端

用户展示及注销用户与重置密码

java

ManagerAbActivity.java

package com.example.addressbook;

import androidx.appcompat.app.AppCompatActivity;
import androidx.appcompat.widget.Toolbar;

import android.os.Bundle;
import android.widget.ListView;

import com.example.addressbook.adapter.PeopleAdapter;
import com.example.addressbook.adapter.UserAdapter;
import com.example.addressbook.bean.People;
import com.example.addressbook.bean.User;

import java.util.Comparator;
import java.util.List;

public class ManagerAbActivity extends AppCompatActivity {

    private MySQLiteOpenHelper mySQLiteOpenHelper;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_manager_ab);


        mySQLiteOpenHelper = new MySQLiteOpenHelper(this);


        //加载列表
        List<User> result = mySQLiteOpenHelper.getAllUser();
        ListView listView = findViewById(R.id.book);

        if(result.size()==0){
            listView.setAdapter(null);//无显示
        }else{


            UserAdapter userAdapter = new UserAdapter(ManagerAbActivity.this,result);
            listView.setAdapter(userAdapter);
        }

    }
}

ManagerImActivity.java

package com.example.addressbook;

import androidx.appcompat.app.AppCompatActivity;

import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.widget.EditText;
import android.widget.ImageView;
import android.widget.TextView;

import com.example.addressbook.Util.ToastUtil;
import com.example.addressbook.bean.People;
import com.example.addressbook.bean.User;

public class ManagerImActivity extends AppCompatActivity {

    private EditText user_name;
    private EditText user_password;
    private MySQLiteOpenHelper mySQLiteOpenHelper;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_manager_im);
        mySQLiteOpenHelper = new MySQLiteOpenHelper(this);




        init();

        //信息同步

        Intent intent = getIntent();
        String id = intent.getStringExtra("id");

        User user=mySQLiteOpenHelper.getOneUser(id);
        user_name.setText(user.getName());
        user_password.setText(user.getPassword());
    }

    private void init(){
        user_name = findViewById(R.id.user_name);
        user_password = findViewById(R.id.user_passowrd);
    }


    public void user_reset(View view) {
        Intent intent = getIntent();
        String id = intent.getStringExtra("id");

        String name=user_name.getText().toString().trim();
        String password=user_password.getText().toString().trim();

        if(name.isEmpty()){
            ToastUtil.toastShort(ManagerImActivity.this,"请输入姓名!");
        }else if(password.isEmpty()){
            ToastUtil.toastShort(ManagerImActivity.this,"请输入密码!");
        }

        Intent intent1 = new Intent(ManagerImActivity.this,ManagerAbActivity.class);
        startActivity(intent1);

        mySQLiteOpenHelper.updateUser(name,password,id);
        ToastUtil.toastShort(ManagerImActivity.this,"更改成功");
    }

    public void user_delete(View view) {
        String id = getIntent().getStringExtra("id");

        mySQLiteOpenHelper.user_delete(id);
        ToastUtil.toastShort(ManagerImActivity.this,"联系人删除成功!");
        Intent intent = new Intent(ManagerImActivity.this,ManagerAbActivity.class);
        startActivity(intent);
    }
}

xml

activity_manager_ab.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context=".ManagerAbActivity"
    android:orientation="vertical"
    android:background="@color/white">



    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="用户信息"
        android:textColor="@color/black"
        android:textSize="32sp"
        android:textStyle="bold"
        android:layout_gravity="center"/>


    <ListView
        android:id="@+id/book"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:divider="#000000" />

</LinearLayout>

activity_manager_im.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context=".ManagerImActivity"
    android:orientation="vertical"
    android:background="@drawable/update_bg">

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="150dp"
        android:orientation="horizontal"
        android:layout_marginTop="30dp"
        android:gravity="center">

        <ImageView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:src="@drawable/icon"
            android:layout_gravity="center"/>
        <ImageView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:src="@drawable/title"
            android:layout_marginTop="10dp"
            android:layout_gravity="center"/>
    </LinearLayout>

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

        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:maxLines="1"
            style="@style/MyTextStyle"
            android:text="姓名"
            android:textStyle="bold"/>
        <EditText
            android:id="@+id/user_name"
            android:layout_width="match_parent"
            android:layout_height="50dp"
            android:textSize="18sp"
            android:layout_marginLeft="10dp"
            android:gravity="center"
            android:inputType="text"
            android:background="@drawable/up_edittext_border"/>

    </LinearLayout>

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

        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:maxLines="1"
            android:inputType="number"
            style="@style/MyTextStyle"
            android:text="密码"
            android:textStyle="bold"/>
        <EditText
            android:id="@+id/user_passowrd"
            android:layout_width="match_parent"
            android:layout_height="50dp"
            android:textSize="18sp"
            android:layout_marginLeft="10dp"
            android:gravity="center"
            android:inputType="text"
            android:background="@drawable/up_edittext_border"/>

    </LinearLayout>


<LinearLayout
    android:layout_width="match_parent"
    android:layout_height="200dp"
    android:orientation="horizontal"
    android:gravity="center">

    <Button
        android:text="注销用户"
        android:onClick="user_delete"
        android:layout_width="150dp"
        style="@style/MyButton"
        android:background="@drawable/round_button"
        android:layout_marginRight="20dp"
        />
    <Button
        android:text="重置密码"
        android:onClick="user_reset"
        style="@style/MyButton"
        android:layout_width="150dp"
        android:background="@drawable/round_button"

        />

</LinearLayout>


</LinearLayout>

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值