Android Studio實(shí)現(xiàn)簡單的通訊錄
網(wǎng)上找的一個(gè)單頁面通訊錄,修改之后將添加聯(lián)系人和修改/刪除聯(lián)系人分為兩個(gè)獨(dú)立頁面



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控件設(shè)置監(jiān)聽
btnQuery.setOnClickListener(this);
btnUpdate.setOnClickListener(this);
findViewById(R.id.traceroute_rootview).setOnClickListener(this);
tvShow.setMovementMethod(ScrollingMovementMethod.getInstance()); //設(shè)置文本滾動
}
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: //添加聯(lián)系人
Intent intent=new Intent(MainActivity.this,nextActivity.class);
startActivity(intent);
break;
case R.id.btn_query: //查詢聯(lián)系人
db = myHelper.getReadableDatabase();
Cursor cursor = db.rawQuery("select name,phone from person",null);
if (cursor.getCount() == 0){
tvShow.setText("");
Toast.makeText(this,"當(dāng)前無聯(lián)系人",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: //修改聯(lián)系人
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控件設(shè)置監(jiān)聽
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: //添加聯(lián)系人
name = etName.getText().toString().trim();
phone = etPhone.getText().toString().trim();
db = myHelper.getWritableDatabase();
if (name.equals("") || phone.equals("")) { //聯(lián)系人信息不能為空
Toast.makeText(this, "聯(lián)系人信息添加失敗", Toast.LENGTH_SHORT).show();
} else {
db.execSQL("insert into person (name,phone) values(?,?)", new Object[]{name, phone});
Toast.makeText(this, "聯(lián)系人信息添加成功", 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()); //設(shè)置文本滾動
}
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: //查詢聯(lián)系人
db = myHelper.getReadableDatabase();
Cursor cursor = db.rawQuery("select name,phone from person",null);
if (cursor.getCount() == 0){
tvShow.setText("");
Toast.makeText(this,"當(dāng)前無聯(lián)系人",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: //修改聯(lián)系人
db = myHelper.getWritableDatabase();
name = etName.getText().toString().trim();
phone = etPhone.getText().toString().trim();
if (name.equals("") || phone.equals("")){ //聯(lián)系人信息不能為空
Toast.makeText(this,"不存在該聯(lián)系人",Toast.LENGTH_SHORT).show();
}
else {
db.execSQL("update person set name=?,phone=? where name=?", new Object[]{name, phone, name});
Toast.makeText(this,"聯(lián)系人信息修改成功",Toast.LENGTH_SHORT).show();
}
db.close();
break;
case R.id.btn_delete: //刪除聯(lián)系人
db = myHelper.getWritableDatabase();
name = etName.getText().toString().trim();
phone = etPhone.getText().toString().trim();
if (name.equals("") || phone.equals("")){ //聯(lián)系人信息不能為空
Toast.makeText(this,"不存在該聯(lián)系人",Toast.LENGTH_SHORT).show();
}
else {
db.execSQL("delete from person where name=? and phone=?", new Object[]{name, phone});
Toast.makeText(this,"聯(lián)系人信息刪除成功",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=" 添加聯(lián)系人"
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="查看聯(lián)系人"
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=" 修改聯(lián)系人"
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="請輸入手機(jī)號碼"
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=" 請輸入手機(jī)號碼"
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="查看聯(lián)系人"
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>
初學(xué)android,程序還存在許多bug,大家多提修改建議。
以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
- 使用adb命令向Android模擬器中導(dǎo)入通訊錄聯(lián)系人的方法
- Android獲取手機(jī)通訊錄、sim卡聯(lián)系人及調(diào)用撥號界面方法
- Android通訊錄開發(fā)之刪除功能的實(shí)現(xiàn)方法
- Android個(gè)人手機(jī)通訊錄開發(fā)詳解
- Android實(shí)現(xiàn)通訊錄效果——獲取手機(jī)號碼和姓名
- Android讀取手機(jī)通訊錄聯(lián)系人到自己項(xiàng)目
- Android破解微信獲取聊天記錄和通訊錄信息(靜態(tài)方式)
- android仿微信通訊錄搜索示例(匹配拼音,字母,索引位置)
- Android自定義View實(shí)現(xiàn)通訊錄字母索引(仿微信通訊錄)
- Android實(shí)現(xiàn)仿通訊錄側(cè)邊欄滑動SiderBar效果代碼
相關(guān)文章
Android實(shí)現(xiàn)銀行卡號掃描識別功能
這篇文章主要為大家詳細(xì)介紹了Android實(shí)現(xiàn)銀行卡號掃描識別功能,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2018-09-09
Android編程使用pull方式解析xml格式文件的方法詳解
這篇文章主要介紹了Android編程使用pull方式解析xml格式文件的方法,結(jié)合實(shí)例形式分析了Android調(diào)用pull解析器操作xml格式文件的步驟與相關(guān)操作技巧,需要的朋友可以參考下2017-07-07
android 幀動畫,補(bǔ)間動畫,屬性動畫的簡單總結(jié)
本文主要對android 幀動畫,補(bǔ)間動畫,屬性動畫進(jìn)行了簡單總結(jié),具有一定的參考價(jià)值,下面跟著小編一起來看下吧2017-01-01
android教程之把自己的應(yīng)用加入到系統(tǒng)分享中
在Android系統(tǒng)中打開相冊中的某張圖片, 點(diǎn)擊右上角的分享按鈕會彈出分享列表, 把自己的應(yīng)用加入到里面來,下面是設(shè)置方法2014-02-02
聲網(wǎng)SDK教程Android UIKit 實(shí)時(shí)視頻通話添加自定義背景
這篇文章主要為大家介紹了聲網(wǎng)SDK教程Android UIKit 實(shí)時(shí)視頻通話添加自定義背景示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-10-10
Android編程使用Fragment界面向下跳轉(zhuǎn)并一級級返回的實(shí)現(xiàn)方法
這篇文章主要介紹了Android編程使用Fragment界面向下跳轉(zhuǎn)并一級級返回的實(shí)現(xiàn)方法,較為詳細(xì)的分析了Fragment界面跳轉(zhuǎn)所涉及的相關(guān)知識點(diǎn)與實(shí)現(xiàn)技巧,并附帶了完整的實(shí)例代碼供讀者下載參考,需要的朋友可以參考下2015-10-10
android 獲取手機(jī)GSM/CDMA信號信息,并獲得基站信息的方法
下面小編就為大家?guī)硪黄猘ndroid 獲取手機(jī)GSM/CDMA信號信息,并獲得基站信息的方法。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2016-11-11

