您的位置:首页技术文章
文章详情页

Android Studio实现简单的通讯录

【字号: 日期:2022-09-19 08:59:05浏览:7作者:猪猪

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

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: 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: 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: 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: 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'/> <TextViewandroid: 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: android:background='@color/white' android:clickable='true' android:orientation='vertical' android:gravity='center_horizontal' tools:context='.nextActivity'> <LinearLayoutandroid: 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: 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> <LinearLayoutandroid: 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'> <TextViewandroid:layout_width='wrap_content'android:layout_height='wrap_content'android:text='电 话 : 'android:textSize='18dp'android:textStyle='bold'/> <EditTextandroid: 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> <LinearLayoutandroid:layout_width='match_parent'android:layout_height='wrap_content'android: android:layout_below='@+id/lineTree'android:layout_marginTop='30dp'android:layout_marginLeft='18dp'android:layout_marginRight='18dp'android:orientation='horizontal'> <Buttonandroid: 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: android:background='@color/white' android:clickable='true' android:orientation='vertical' android:gravity='center_horizontal' tools:context='.xiugaiActivity'> <LinearLayoutandroid: 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: 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> <LinearLayoutandroid: 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: 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> <LinearLayoutandroid:layout_width='match_parent'android:layout_height='wrap_content'android: android:layout_below='@+id/lineTree'android:layout_marginTop='30dp'android:layout_marginLeft='18dp'android:layout_marginRight='18dp'android:orientation='horizontal'><Button android: 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: 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: 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> <TextViewandroid: 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'> <applicationandroid: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
相关文章: