Android Studio实现简单的通讯录

2021-05-25 0 742

网上找的一个单页面通讯录,修改之后将添加联系人和修改/删除联系人分为两个独立页面

Android Studio实现简单的通讯录Android Studio实现简单的通讯录Android Studio实现简单的通讯录

MainActivity

package com.example.test;
 
import androidx.appcompat.app.AppCompatActivity;
import android.content.Context;
import android.content.Intent;
import android.os.Bundle;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.text.method.ScrollingMovementMethod;
import android.view.View;
import android.view.inputmethod.InputMethodManager;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;
import android.widget.Toast;
 
public class MainActivity extends AppCompatActivity implements View.OnClickListener{
    MyHelper myHelper;
    private TextView tvShow;
    private Button btnAdd;
    private Button btnQuery;
    private Button btnUpdate;
 
 
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        myHelper = new MyHelper(this);
        init();
    }
    private void init(){
        tvShow = (TextView)findViewById(R.id.tv_show);
        btnAdd = (Button)findViewById(R.id.btn_add);
        btnQuery = (Button)findViewById(R.id.btn_query);
        btnUpdate = (Button)findViewById(R.id.btn_update);
        btnAdd.setOnClickListener(this);   //Button控件设置监听
        btnQuery.setOnClickListener(this);
        btnUpdate.setOnClickListener(this);
        findViewById(R.id.traceroute_rootview).setOnClickListener(this);
        tvShow.setMovementMethod(ScrollingMovementMethod.getInstance()); //设置文本滚动
    }
    public void onClick(View v){
        SQLiteDatabase db;
        switch (v.getId()){
            case R.id.traceroute_rootview:
                InputMethodManager imm=(InputMethodManager)
                        getSystemService(Context.INPUT_METHOD_SERVICE);
                imm.hideSoftInputFromWindow(v.getWindowToken(),0);
                break;
            case R.id.btn_add:  //添加联系人
                Intent intent=new Intent(MainActivity.this,nextActivity.class);
                startActivity(intent);
                break;
            case R.id.btn_query: //查询联系人
                db = myHelper.getReadableDatabase();
                Cursor cursor = db.rawQuery(\"select name,phone from person\",null);
                if (cursor.getCount() == 0){
                    tvShow.setText(\"\");
                    Toast.makeText(this,\"当前无联系人\",Toast.LENGTH_SHORT).show();
                }else {
                    cursor.moveToFirst();
                    tvShow.setText(\"Name:\" + cursor.getString(0) + \" ; Tel:\" + cursor.getString(1));
                    while (cursor.moveToNext()){
                        tvShow.append(\"\\n\" + \"Name:\" + cursor.getString(0) + \" ; Tel:\" + cursor.getString(1));
                    }
                }
                cursor.close();
                db.close();
                break;
            case R.id.btn_update: //修改联系人
                Intent intent1=new Intent(MainActivity.this,xiugaiActivity.class);
                startActivity(intent1);
                break;
        }
    }
}

nextActivity

package com.example.test;
 
import androidx.appcompat.app.AppCompatActivity;
import android.content.Context;
import android.content.Intent;
import android.os.Bundle;
import android.database.sqlite.SQLiteDatabase;
import android.view.View;
import android.view.inputmethod.InputMethodManager;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Toast;
 
public class nextActivity extends AppCompatActivity implements View.OnClickListener {
    MyHelper myHelper;
    private EditText etName;
    private EditText etPhone;
    private Button btnAdd;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.next);
        myHelper = new MyHelper(this);
        init();
    }
    private void init(){
        etName = (EditText)findViewById(R.id.et_name);
        etPhone = (EditText)findViewById(R.id.et_phone);
        btnAdd = (Button)findViewById(R.id.btn_add);
        btnAdd.setOnClickListener(this);   //Button控件设置监听
        findViewById(R.id.traceroute_rootview).setOnClickListener(this);
    }
    public void onClick(View v){
        String name;
        String phone;
        SQLiteDatabase db;
        switch (v.getId()) {
            case R.id.traceroute_rootview:
                InputMethodManager imm = (InputMethodManager)
                        getSystemService(Context.INPUT_METHOD_SERVICE);
                imm.hideSoftInputFromWindow(v.getWindowToken(), 0);
                break;
            case R.id.btn_add:  //添加联系人
                name = etName.getText().toString().trim();
                phone = etPhone.getText().toString().trim();
                db = myHelper.getWritableDatabase();
                if (name.equals(\"\") || phone.equals(\"\")) { //联系人信息不能为空
                    Toast.makeText(this, \"联系人信息添加失败\", Toast.LENGTH_SHORT).show();
                } else {
                    db.execSQL(\"insert into person (name,phone) values(?,?)\", new Object[]{name, phone});
                    Toast.makeText(this, \"联系人信息添加成功\", Toast.LENGTH_SHORT).show();
                }
                db.close();
                Intent intent=new Intent(nextActivity.this,MainActivity.class);
                startActivity(intent);
                break;
        }
    }
}

xiugaiActivity

package com.example.test;
 
import androidx.appcompat.app.AppCompatActivity;
import android.content.Context;
import android.os.Bundle;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.text.method.ScrollingMovementMethod;
import android.view.View;
import android.view.inputmethod.InputMethodManager;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;
import android.widget.Toast;
public class xiugaiActivity extends AppCompatActivity implements View.OnClickListener{
    MyHelper myHelper;
    private EditText etName;
    private EditText etPhone;
    private TextView tvShow;
    private Button btnQuery;
    private Button btnUpdate;
    private Button btnDelete;
 
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.xiugai);
        myHelper = new MyHelper(this);
        init();
    }
    private void init(){
        etName = (EditText)findViewById(R.id.et_name);
        etPhone = (EditText)findViewById(R.id.et_phone);
        tvShow = (TextView)findViewById(R.id.tv_show);
        btnQuery = (Button)findViewById(R.id.btn_query);
        btnUpdate = (Button)findViewById(R.id.btn_update);
        btnDelete = (Button)findViewById(R.id.btn_delete);
        btnQuery.setOnClickListener(this);
        btnUpdate.setOnClickListener(this);
        btnDelete.setOnClickListener(this);
        findViewById(R.id.traceroute_rootview).setOnClickListener(this);
        tvShow.setMovementMethod(ScrollingMovementMethod.getInstance()); //设置文本滚动
    }
    public void onClick(View v){
        String name;
        String phone;
        SQLiteDatabase db;
        switch (v.getId()){
            case R.id.traceroute_rootview:
                InputMethodManager imm=(InputMethodManager)
                        getSystemService(Context.INPUT_METHOD_SERVICE);
                imm.hideSoftInputFromWindow(v.getWindowToken(),0);
                break;
            case R.id.btn_query: //查询联系人
                db = myHelper.getReadableDatabase();
                Cursor cursor = db.rawQuery(\"select name,phone from person\",null);
                if (cursor.getCount() == 0){
                    tvShow.setText(\"\");
                    Toast.makeText(this,\"当前无联系人\",Toast.LENGTH_SHORT).show();
                }else {
                    cursor.moveToFirst();
                    tvShow.setText(\"Name:\" + cursor.getString(0) + \" ; Tel:\" + cursor.getString(1));
                    while (cursor.moveToNext()){
                        tvShow.append(\"\\n\" + \"Name:\" + cursor.getString(0) + \" ; Tel:\" + cursor.getString(1));
                    }
                }
                cursor.close();
                db.close();
                break;
            case R.id.btn_update: //修改联系人
                db = myHelper.getWritableDatabase();
                name = etName.getText().toString().trim();
                phone = etPhone.getText().toString().trim();
                if (name.equals(\"\") || phone.equals(\"\")){ //联系人信息不能为空
                    Toast.makeText(this,\"不存在该联系人\",Toast.LENGTH_SHORT).show();
                }
                else {
                    db.execSQL(\"update person set name=?,phone=? where name=?\", new Object[]{name, phone, name});
                    Toast.makeText(this,\"联系人信息修改成功\",Toast.LENGTH_SHORT).show();
                }
                db.close();
                break;
            case R.id.btn_delete: //删除联系人
                db = myHelper.getWritableDatabase();
                name = etName.getText().toString().trim();
                phone = etPhone.getText().toString().trim();
                if (name.equals(\"\") || phone.equals(\"\")){ //联系人信息不能为空
                    Toast.makeText(this,\"不存在该联系人\",Toast.LENGTH_SHORT).show();
                }
                else {
                    db.execSQL(\"delete from person where name=? and phone=?\", new Object[]{name, phone});
                    Toast.makeText(this,\"联系人信息删除成功\",Toast.LENGTH_SHORT).show();
                }
                db.close();
                break;
        }
    }
}

MyHelper

package com.example.test;
import android.content.Context;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteOpenHelper;
public class MyHelper extends SQLiteOpenHelper{
    public MyHelper(Context context){
        super(context, \"alan.db\", null ,2);
    }
    @Override
 
    public void onCreate(SQLiteDatabase db){
        db.execSQL(\"create table person(id integer primary key autoincrement,name varchar(20),phone varchar(20) unique)\");
    }
    public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion){
 
    }
}

activity_main.xml

<?xml version=\"1.0\" encoding=\"utf-8\"?>
<LinearLayout xmlns:android=\"http://schemas.android.com/apk/res/android\"
    xmlns:tools=\"http://schemas.android.com/tools\"
    android:orientation=\"vertical\"
    android:layout_width=\"match_parent\"
    android:layout_height=\"match_parent\"
    android:id=\"@+id/traceroute_rootview\"
    android:background=\"@color/white\"
    android:clickable=\"true\"
    android:gravity=\"center_horizontal\"
    tools:context=\".MainActivity\">
        <TextView
            android:layout_width=\"match_parent\"
            android:layout_height=\"wrap_content\"
            android:text=\"通 讯 录\"
            android:textSize=\"30dp\"
            android:textStyle=\"italic\"
            android:gravity=\"center\"
            android:textColor=\"@color/black\">
        </TextView>
        <Button
            android:id=\"@+id/btn_add\"
            android:layout_width=\"match_parent\"
            android:layout_height=\"wrap_content\"
            android:background=\"@drawable/shape\"
            android:text=\" 添加联系人\"
            android:textSize=\"16dp\"
            android:textColor=\"#c2c8ec\"
            android:textStyle=\"bold\"/>
        <Button
            android:id=\"@+id/btn_query\"
            android:layout_width=\"match_parent\"
            android:layout_height=\"wrap_content\"
            android:background=\"@drawable/shape\"
            android:text=\"查看联系人\"
            android:textSize=\"16dp\"
            android:textColor=\"#c2c8ec\"
            android:textStyle=\"bold\"/>
        <Button
            android:id=\"@+id/btn_update\"
            android:layout_width=\"match_parent\"
            android:layout_height=\"wrap_content\"
            android:background=\"@drawable/shape\"
            android:text=\" 修改联系人\"
            android:textSize=\"16dp\"
            android:textColor=\"#c2c8ec\"
            android:textStyle=\"bold\"/>
    <TextView
        android:id=\"@+id/tv_show\"
        android:layout_width=\"match_parent\"
        android:layout_height=\"180dp\"
        android:scrollbars=\"vertical\"
        android:layout_below=\"@+id/lineFour\"
        android:layout_marginTop=\"20dp\"
        android:layout_marginLeft=\"20dp\"
        android:layout_marginRight=\"18dp\"
        android:textColor=\"#c2c8ec\"
        android:textSize=\"24dp\"/>
</LinearLayout>

next.xml

<?xml version=\"1.0\" encoding=\"utf-8\"?>
<RelativeLayout
    xmlns:android=\"http://schemas.android.com/apk/res/android\"
    xmlns:tools=\"http://schemas.android.com/tools\"
    android:layout_width=\"match_parent\"
    android:layout_height=\"match_parent\"
    android:id=\"@+id/traceroute_rootview\"
    android:background=\"@color/white\"
    android:clickable=\"true\"
    android:orientation=\"vertical\"
    android:gravity=\"center_horizontal\"
    tools:context=\".nextActivity\">
    <LinearLayout
        android:id=\"@+id/lineTwo\"
        android:layout_width=\"match_parent\"
        android:layout_height=\"wrap_content\"
        android:layout_below=\"@+id/lineOne\"
        android:layout_marginTop=\"20dp\"
        android:layout_marginLeft=\"18dp\"
        android:layout_marginRight=\"18dp\">
        <TextView
            android:layout_width=\"wrap_content\"
            android:layout_height=\"wrap_content\"
            android:text=\"姓 名 : \"
            android:textSize=\"18dp\"
            android:textStyle=\"bold\"/>
        <EditText
            android:id=\"@+id/et_name\"
            android:layout_width=\"match_parent\"
            android:layout_height=\"wrap_content\"
            android:hint=\"请输入姓名\"
            android:textSize=\"16dp\"
            android:maxLines=\"1\"
            android:singleLine=\"true\"
            android:maxLength=\"14\"/>
    </LinearLayout>
    <LinearLayout
        android:id=\"@+id/lineTree\"
        android:layout_width=\"match_parent\"
        android:layout_height=\"wrap_content\"
        android:layout_below=\"@+id/lineTwo\"
        android:layout_marginTop=\"10dp\"
        android:layout_marginLeft=\"18dp\"
        android:layout_marginRight=\"18dp\">
    <TextView
        android:layout_width=\"wrap_content\"
        android:layout_height=\"wrap_content\"
        android:text=\"电 话 : \"
        android:textSize=\"18dp\"
        android:textStyle=\"bold\"/>
    <EditText
        android:id=\"@+id/et_phone\"
        android:layout_width=\"match_parent\"
        android:layout_height=\"wrap_content\"
        android:hint=\"请输入手机号码\"
        android:textSize=\"16dp\"
        android:maxLines=\"1\"
        android:singleLine=\"true\"
        android:maxLength=\"11\"/>
    </LinearLayout>
    <LinearLayout
        android:layout_width=\"match_parent\"
        android:layout_height=\"wrap_content\"
        android:id=\"@+id/lineFour\"
        android:layout_below=\"@+id/lineTree\"
        android:layout_marginTop=\"30dp\"
        android:layout_marginLeft=\"18dp\"
        android:layout_marginRight=\"18dp\"
        android:orientation=\"horizontal\">
    <Button
        android:id=\"@+id/btn_add\"
        android:layout_width=\"wrap_content\"
        android:layout_height=\"wrap_content\"
        android:background=\"@drawable/shape\"
        android:layout_weight=\"1\"
        android:text=\" 确 定 \"
        android:textSize=\"16dp\"
        android:textColor=\"#c2c8ec\"
        android:textStyle=\"bold\"/>
    </LinearLayout>
</RelativeLayout>
xiugai.xml

<?xml version=\"1.0\" encoding=\"utf-8\"?>
<RelativeLayout
    xmlns:android=\"http://schemas.android.com/apk/res/android\"
    xmlns:tools=\"http://schemas.android.com/tools\"
    android:layout_width=\"match_parent\"
    android:layout_height=\"match_parent\"
    android:id=\"@+id/traceroute_rootview\"
    android:background=\"@color/white\"
    android:clickable=\"true\"
    android:orientation=\"vertical\"
    android:gravity=\"center_horizontal\"
    tools:context=\".xiugaiActivity\">
    <LinearLayout
        android:id=\"@+id/lineTwo\"
        android:layout_width=\"match_parent\"
        android:layout_height=\"wrap_content\"
        android:layout_below=\"@+id/lineOne\"
        android:layout_marginTop=\"20dp\"
        android:layout_marginLeft=\"18dp\"
        android:layout_marginRight=\"18dp\">
        <TextView
            android:layout_width=\"wrap_content\"
            android:layout_height=\"wrap_content\"
            android:text=\"姓 名 : \"
            android:textSize=\"18dp\"
            android:textStyle=\"bold\"/>
        <EditText
            android:id=\"@+id/et_name\"
            android:layout_width=\"match_parent\"
            android:layout_height=\"wrap_content\"
            android:hint=\"  请输入姓名\"
            android:textSize=\"16dp\"
            android:maxLines=\"1\"
            android:singleLine=\"true\"
            android:maxLength=\"14\"/>
    </LinearLayout>
    <LinearLayout
        android:id=\"@+id/lineTree\"
        android:layout_width=\"match_parent\"
        android:layout_height=\"wrap_content\"
        android:layout_below=\"@+id/lineTwo\"
        android:layout_marginTop=\"10dp\"
        android:layout_marginLeft=\"18dp\"
        android:layout_marginRight=\"18dp\">
        <TextView
            android:layout_width=\"wrap_content\"
            android:layout_height=\"wrap_content\"
            android:text=\"电 话 : \"
            android:textSize=\"18dp\"
            android:textStyle=\"bold\"/>
        <EditText
            android:id=\"@+id/et_phone\"
            android:layout_width=\"match_parent\"
            android:layout_height=\"wrap_content\"
            android:hint=\"  请输入手机号码\"
            android:textSize=\"16dp\"
            android:maxLines=\"1\"
            android:singleLine=\"true\"
            android:maxLength=\"11\"/>
    </LinearLayout>
    <LinearLayout
        android:layout_width=\"match_parent\"
        android:layout_height=\"wrap_content\"
        android:id=\"@+id/lineFour\"
        android:layout_below=\"@+id/lineTree\"
        android:layout_marginTop=\"30dp\"
        android:layout_marginLeft=\"18dp\"
        android:layout_marginRight=\"18dp\"
        android:orientation=\"horizontal\">
        <Button
            android:id=\"@+id/btn_query\"
            android:layout_width=\"wrap_content\"
            android:layout_height=\"wrap_content\"
            android:background=\"@drawable/shape\"
            android:layout_weight=\"1\"
            android:layout_marginLeft=\"4dp\"
            android:text=\"查看联系人\"
            android:textSize=\"16dp\"
            android:textColor=\"#c2c8ec\"
            android:textStyle=\"bold\"/>
        <Button
            android:id=\"@+id/btn_update\"
            android:layout_width=\"wrap_content\"
            android:layout_height=\"wrap_content\"
            android:background=\"@drawable/shape\"
            android:layout_weight=\"1\"
            android:layout_marginLeft=\"4dp\"
            android:text=\" 修 改 \"
            android:textSize=\"16dp\"
            android:textColor=\"#c2c8ec\"
            android:textStyle=\"bold\"/>
        <Button
            android:id=\"@+id/btn_delete\"
            android:layout_width=\"wrap_content\"
            android:layout_height=\"wrap_content\"
            android:background=\"@drawable/shape\"
            android:layout_weight=\"1\"
            android:layout_marginLeft=\"4dp\"
            android:text=\" 删 除 \"
            android:textSize=\"16dp\"
            android:textColor=\"#c2c8ec\"
            android:textStyle=\"bold\"/>
    </LinearLayout>
    <TextView
        android:id=\"@+id/tv_show\"
        android:layout_width=\"match_parent\"
        android:layout_height=\"180dp\"
        android:scrollbars=\"vertical\"
        android:layout_below=\"@+id/lineFour\"
        android:layout_marginTop=\"20dp\"
        android:layout_marginLeft=\"20dp\"
        android:layout_marginRight=\"18dp\"
        android:textColor=\"#c2c8ec\"
        android:textSize=\"24dp\"/>
</RelativeLayout>

Mainfest

<?xml version=\"1.0\" encoding=\"utf-8\"?>
<manifest xmlns:android=\"http://schemas.android.com/apk/res/android\"
    package=\"com.example.test\">
 
    <application
        android:allowBackup=\"true\"
        android:icon=\"@mipmap/ic_launcher\"
        android:label=\"@string/app_name\"
        android:roundIcon=\"@mipmap/ic_launcher_round\"
        android:supportsRtl=\"true\"
        android:theme=\"@style/Theme.Test\">
        <activity android:name=\".MainActivity\">
            <intent-filter>
                <action android:name=\"android.intent.action.MAIN\" />
 
                <category android:name=\"android.intent.category.LAUNCHER\" />
            </intent-filter>
        </activity>
        <activity android:name=\".nextActivity\"></activity>
        <activity android:name=\".xiugaiActivity\"></activity>
    </application>
 
</manifest>

初学android,程序还存在许多bug,大家多提修改建议。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持自学编程网。

遇见资源网 Android Android Studio实现简单的通讯录 http://www.ox520.com/24120.html

常见问题

相关文章

发表评论
暂无评论
官方客服团队

为您解决烦忧 - 24小时在线 专业服务