软件编程
位置:首页>> 软件编程>> Android编程>> Android Studio实现简单的通讯录

Android Studio实现简单的通讯录

作者:诸葛琴魔q  发布时间:2023-06-13 06:49:56 

标签:Android,Studio,通讯录

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

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,大家多提修改建议。

来源:https://blog.csdn.net/a92316/article/details/116135359

0
投稿

猜你喜欢

手机版 软件编程 asp之家 www.aspxhome.com