建设积分商城网站,泉州晋江网站建设,俄罗斯军事最新消息,荆门seo#x1f7e7;#x1f7e8;#x1f7e9;#x1f7e6;#x1f7ea; Android Debug#x1f7e7;#x1f7e8;#x1f7e9;#x1f7e6;#x1f7ea; Topic
发布安卓学习过程中遇到问题解决过程#xff0c;希望我的解决方案可以对小伙伴们有帮助。 #x1f4cb;笔记目… Android Debug Topic
发布安卓学习过程中遇到问题解决过程希望我的解决方案可以对小伙伴们有帮助。 笔记目录
实战演练--基于SQLite数据库的通讯录实现数据的增删改查
1创建程序
2放置界面控件
3编写界面交互代码
4, 核心方法讲解
5数据库的创建及初始化
6运行程序
结尾 实战演练--基于SQLite数据库的通讯录实现数据的增删改查 1创建程序
创建一个名为Directory的应用程序,指定报名为cn.example.directory。
2放置界面控件
在activity_main.xml布局文件中放置三个TextView控件分别用于显示姓名文本、“电话”文本以及显示保存的姓名和电话信息两个EditText控件分别用于显示姓名的输入框与电话的输入框,四个Button控件分别用于显示添加按钮、查询按钮、修改按钮以及删除按钮。 ?xml version1.0 encodingutf-8?
LinearLayout xmlns:androidhttp://schemas.android.com/apk/res/androidxmlns:apphttp://schemas.android.com/apk/res-autoxmlns:toolshttp://schemas.android.com/toolsandroid:layout_widthmatch_parentandroid:layout_heightmatch_parenttools:context.MainActivityandroid:padding16dpandroid:orientationverticalLinearLayoutandroid:layout_widthmatch_parentandroid:layout_heightwrap_contentandroid:layout_marginTop130dpTextViewandroid:layout_widthwrap_contentandroid:layout_heightwrap_contentandroid:text姓 名:android:textSize18sp /EditTextandroid:layout_widthmatch_parentandroid:layout_heightwrap_contentandroid:idid/et_nameandroid:hint请输入姓名:android:textSize16sp//LinearLayoutLinearLayoutandroid:layout_widthmatch_parentandroid:layout_heightwrap_contentandroid:layout_marginBottom10dpTextViewandroid:layout_widthwrap_contentandroid:layout_heightwrap_contentandroid:text电 话:android:textSize18sp/EditTextandroid:idid/et_phoneandroid:layout_widthmatch_parentandroid:layout_heightwrap_contentandroid:hint请输入手机号码:android:textSize16sp//LinearLayoutLinearLayoutandroid:layout_widthmatch_parentandroid:layout_heightwrap_contentButtonandroid:layout_width0dpandroid:layout_heightwrap_contentandroid:idid/btn_addandroid:layout_marginRight2dpandroid:layout_weight1android:background#B9B9FFandroid:text添加android:textSize18sp/Buttonandroid:layout_width0dpandroid:layout_heightwrap_contentandroid:idid/btn_queryandroid:layout_marginRight2dpandroid:layout_weight1android:background#DCB5FFandroid:text查询android:textSize18sp/Buttonandroid:layout_width0dpandroid:layout_heightwrap_contentandroid:idid/ben_updateandroid:layout_marginRight2dpandroid:layout_weight1android:background#E6CAFFandroid:text修改android:textSize18sp /Buttonandroid:layout_width0dpandroid:layout_heightwrap_contentandroid:idid/btn_deleteandroid:layout_weight1android:background#ACD6FFandroid:text删除android:textSize18sp//LinearLayoutTextViewandroid:layout_widthmatch_parentandroid:layout_heightwrap_contentandroid:idid/tv_showandroid:layout_marginTop25dpandroid:textSize20sp//LinearLayout
3编写界面交互代码
在MainActivity中编写逻辑代码实现联系人信息的添加、查询、修改以及删除功能由于通讯录界面上的添加、查询、修改、删除按钮需要设置点击事件因此将MainActivity实现OnClickListener接口并重写Onclick方法在该方法中实现这四个按钮的点击事件。
package com.example.directory;import androidx.appcompat.app.AppCompatActivity;import android.content.ContentValues;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.os.Bundle;
import android.view.View;
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 EditText mEtName;private EditText mEtphone;private TextView mTvShow;private Button mBtnAdd;private Button mBtnQuery;private Button mBtnUpdate;private Button mBtnDelete;Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);myHelper new MyHelper(this);init();}private void init() {mEtName findViewById(R.id.et_name);mEtphone findViewById(R.id.et_phone);mTvShow findViewById(R.id.tv_show);mBtnAdd findViewById(R.id.btn_add);mBtnQuery findViewById(R.id.btn_query);mBtnUpdate findViewById(R.id.ben_update);mBtnDelete findViewById(R.id.btn_delete);mBtnAdd.setOnClickListener(this);mBtnQuery.setOnClickListener(this);mBtnUpdate.setOnClickListener(this);mBtnDelete.setOnClickListener(this);}Overridepublic void onClick(View v) {String name,phone;SQLiteDatabase db;ContentValues values;switch (v.getId()){case R.id.btn_add:name mEtName.getText().toString();phone mEtphone.getText().toString();db myHelper.getWritableDatabase();values new ContentValues();values.put(name,name);values.put(phone,phone);db.insert(information,null,values);Toast.makeText(this,信息已添加,Toast.LENGTH_SHORT).show();db.close();break;case R.id.btn_query:db myHelper.getReadableDatabase();Cursor cursor db.query(information,null,null,null,null,null,null);if (cursor.getCount() 0){mTvShow.setText();Toast.makeText(this,没有数据,Toast.LENGTH_SHORT).show();}else {cursor.moveToFirst();mTvShow.setText(Name : cursor.getString(1) ; Tel : cursor.getString(2));}while (cursor.moveToNext()){mTvShow.append(\n Name : cursor.getString(1) ; Tel : cursor.getString(2));}cursor.close();db.close();break;case R.id.ben_update:db myHelper.getWritableDatabase();values new ContentValues();values.put(phone,phone mEtphone.getText().toString());db.update(information,values,name?, new String[]{mEtName.getText().toString()});Toast.makeText(this,信息已修改,Toast.LENGTH_SHORT).show();db.close();break;case R.id.btn_delete:db myHelper.getWritableDatabase();db.delete(information,null,null);Toast.makeText(this,信息已删除,Toast.LENGTH_SHORT).show();mTvShow.setText();db.close();break;}}
}4, 核心方法讲解
在上述代码中一开始创建了一个init()方法用于初始化界面控件并设置添加查询修改删除按钮的点击监听事件。 通过SQLiteDatabase类的insert()方法将姓名和电话信息添加到数据库中。 通过SQLiteDatabase类的query()方法将数据库中的姓名和电话信息查询出来并显示在界面中。 通过SQLiteDatabase类的update()方法修改数据库中的姓名和电话信息。 通过SQLiteDatabase类的delete()方法删除数据库中的姓名和电话信息。 通过SQLiteDatabase类的execSQL()方法创建表information。 5数据库的创建及初始化
package com.example.directory;import android.content.Context;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteOpenHelper;import androidx.annotation.Nullable;class MyHelper extends SQLiteOpenHelper {public MyHelper(Context context) {super(context, incast.db, null, 1);}// 数据库第一次被创建时调用该方法Overridepublic void onCreate(SQLiteDatabase db) {//初始化数据库的表结构执行一条建表的SQL语句db.execSQL(CREATE TABLE information(_id INTEGER PRIMARY KEY AUTOINCREMENT,name VARCHAR(20), phone VARCHAR(20)));}//当数据库的版本号增加时调用Overridepublic void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {}
}6运行程序
运行上述程序 输入两条联系人信息点击添加按钮运行结果如图所示 点击查询按钮会发现添加的联系人信息在界面中显示 重新输入一个人的联系电话点击修改按钮然后再进行查询会发现联系人电话已经修改成功 点击删除按钮会将数据库中所有联系人进行删除 结尾 至此文件存储的相关知识已讲解完成该知识所用到的核心技术是利用I/O流来进行文件读写操作其中,Context类中提供的openFileInput()和OpenFileOutput()方法的用法一定要掌握。 欢迎各位→点赞 收藏⭐️ 留言 写给读者很高兴你能看到我的文章希望我的文章可以帮助到你祝万事顺意️