【Android开发基础】SQLite开发复刻通讯录、记事本、计算机

news/2024/11/8 16:43:20/

文章目录

    • 一、引言
    • 二、设计
      • 1、通讯录
        • (1)效果
        • (2)思路
        • (3)实现
      • 2、记事本
        • (1)效果
        • (2)思路
        • (3)实现
    • 三、附件
      • 1、计算器UI界面设计
      • 2、源代码

一、引言

  • 描述:通讯录、记事本、计算器这已经很常见了,基本每台手机都有。那么还有学习设计的必要吗?当然,初学者学习一套技术时,必然要先学会复刻,然后再创新。复刻是技术提升的过程,创新是技术深度的证明。没有生而知之者,更没有抄袭之说,只能说我们是站在巨人的肩膀上观澜世界。
  • 知识点:
    1、SQLite数据库的使用
    2、按钮样式设计
    3、点击、长按事件的使用
    4、全局样式的修改
  • 难度:初级

二、设计

1、通讯录

(1)效果

在这里插入图片描述

(2)思路

       对于数据的管理肯定就是最最基本的增删改查,这是毋庸置疑的。初学者在五天内能够将这些操作做到滚瓜烂熟就已经非常不错了。剩下的就交个Intent组件进行通讯的跳转和连接。

(3)实现

因为效果简单,我就不封装数据库操作方法,只贴主要代码,源码请看附件。

  • Insert
db = myhelper.getWritableDatabase();
values = new ContentValues();
values.put("name",name);
values.put("phone",phone);
db.insert("listphone",null,values);
Toast.makeText(this,"信息添加成功",Toast.LENGTH_SHORT).show();
db.close();
  • Update
db = myhelper.getReadableDatabase();
values = new ContentValues();
if (TextUtils.isEmpty(names.getText())){Toast.makeText(this,"所需要修改的姓名不能为空!!",Toast.LENGTH_SHORT).show();break;
} else if (update_id == null){values.put("phone" , phone = phones.getText().toString());db.update("listphone",values,"name=?",new String[]{names.getText().toString()});Toast.makeText(this,"信息修改成功!!",Toast.LENGTH_SHORT).show();
} else {values.put("name" , phone = names.getText().toString());values.put("phone" , phone = phones.getText().toString());db.update("listphone",values,"_id=?",new String[]{update_id});Toast.makeText(this,"信息修改成功!!",Toast.LENGTH_SHORT).show();
}
db.close();
  • Delete
db = myhelper.getReadableDatabase();
if (TextUtils.isEmpty(names.getText())){Toast.makeText(this,"请输入需要删除的联系人!!",Toast.LENGTH_SHORT).show();break;
}
db.delete("listphone", "name=?",new String[]{names.getText().toString()});
Toast.makeText(this,"信息删除成功!!",Toast.LENGTH_SHORT).show();
db.close();
  • Query
db = myhelper.getReadableDatabase();
Cursor cursor = db.query("listphone",null,null,null,null,null,null);
cursor.moveToFirst();
data = new ArrayList<>();
next = new ArrayList<>();
ids = new ArrayList<>();
if (cursor.getCount() == 0){Toast.makeText(this,"通讯录为空!!",Toast.LENGTH_SHORT).show();
} else {ids.add(cursor.getString(0));data.add(cursor.getString(1));next.add(cursor.getString(2));
} while (cursor.moveToNext()){ids.add(cursor.getString(0));data.add(cursor.getString(1));next.add(cursor.getString(2));
}
ArrayAdapter<String> adapter = new ArrayAdapter<>(this,R.layout.phine_list,R.id.li,data);
ArrayAdapter<String> adapter1 = new ArrayAdapter<>(this,R.layout.phine_list,R.id.li,next);
list.setAdapter(adapter);
list1.setAdapter(adapter1);
cursor.close();
db.close();]

2、记事本

(1)效果

在这里插入图片描述

(2)思路

数据操作也是增删改查,但是更多的则是一些需求的完成。
比如:
1、字体加粗、字体放大/放小、斜体等基本字体操作
2、删除,总不能点进去删,需要局外遍历删除,是长按还是滑动?
3、搜索,模糊搜索,搜索的字段有哪些?

(3)实现

数据库操作在通讯录里已经写过同样的操作,这里就不重复了,就写点其他功能。

  • 长按
AlertDialog dialog;
AlertDialog.Builder builder = new AlertDialog.Builder( NotepadActivity.this).setMessage("是否删除此事件?").setPositiveButton("确定", new DialogInterface.OnClickListener() {@Overridepublic void onClick(DialogInterface dialog, int which) {Notepbook notepadBean = list.get(position);if(mSQLiteHelper.deleteData(notepadBean.getId())){list.remove(position);adapter.notifyDataSetChanged();Toast.makeText(NotepadActivity.this,"删除成功",Toast.LENGTH_SHORT).show();}}}).setNegativeButton("取消", new DialogInterface.OnClickListener() {@Overridepublic void onClick(DialogInterface dialog, int which) {dialog.dismiss();}});
dialog =  builder.create();
dialog.show();
  • 字体样式
case R.id.bin_bold:  // 加粗content.setTypeface(Typeface.defaultFromStyle(Typeface.BOLD));break;
case R.id.bin_italic:  // 斜体content.setTypeface(Typeface.defaultFromStyle(Typeface.ITALIC));break;
case R.id.bin_a:  // 变小fend -= 5;content.setTextSize(fend);break;
case R.id.bin_A:  // 变大fend += 5;content.setTextSize(fend);break;

三、附件

1、计算器UI界面设计

计算器就当是给初学者练习的项目

  • 效果
    在这里插入图片描述
  • 代码
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"xmlns:app="http://schemas.android.com/apk/res-auto"xmlns:tools="http://schemas.android.com/tools"android:layout_width="match_parent"android:layout_height="match_parent"android:background="#666"tools:context=".MainActivity"><EditTextandroid:id="@+id/main_01"android:layout_width="match_parent"android:layout_height="120dp"android:textColor="#fff"android:gravity="center_vertical|right"android:background="#F0F0F0"/><RelativeLayoutandroid:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_below="@id/main_01"android:layout_marginTop="20dp"><Buttonandroid:id="@+id/text_ac"style="@style/textStyle1"android:layout_width="70dp"android:layout_height="70dp"android:background="@drawable/shape_w"android:text="AC"android:textColor="#000"/><Buttonandroid:id="@+id/user_1"style="@style/textStyle1"android:layout_width="70dp"android:layout_height="70dp"android:layout_toRightOf="@id/text_ac"android:background="@drawable/shape_w"android:text="±"android:textColor="#000" /><Buttonandroid:id="@+id/user_bai"style="@style/textStyle1"android:layout_width="70dp"android:layout_height="70dp"android:layout_toRightOf="@id/user_1"android:background="@drawable/shape_w"android:text="%"android:textColor="#000" /><Buttonandroid:id="@+id/text_chu"style="@style/textStyle2"android:layout_width="70dp"android:layout_height="70dp"android:layout_toRightOf="@id/user_bai"android:background="@drawable/shape_o"android:text="÷" /><Buttonandroid:id="@+id/text_01"style="@style/textStyle1"android:layout_width="70dp"android:layout_height="70dp"android:layout_below="@id/text_ac"android:background="@drawable/shape_b"android:text="1" /><Buttonandroid:id="@+id/text_02"style="@style/textStyle1"android:layout_width="70dp"android:layout_height="70dp"android:layout_below="@id/text_ac"android:layout_toRightOf="@id/text_01"android:background="@drawable/shape_b"android:text="2" /><Buttonandroid:id="@+id/text_03"style="@style/textStyle1"android:layout_width="70dp"android:layout_height="70dp"android:layout_below="@id/text_ac"android:layout_toRightOf="@id/text_02"android:background="@drawable/shape_b"android:text="3" /><Buttonandroid:id="@+id/text_jia"style="@style/textStyle2"android:layout_width="70dp"android:layout_height="70dp"android:layout_below="@id/text_chu"android:layout_toRightOf="@id/user_bai"android:background="@drawable/shape_o"android:text="+" /><Buttonandroid:id="@+id/text_04"style="@style/textStyle1"android:layout_width="70dp"android:layout_height="70dp"android:layout_below="@id/text_01"android:background="@drawable/shape_b"android:text="4" /><Buttonandroid:id="@+id/text_05"style="@style/textStyle1"android:layout_width="70dp"android:layout_height="70dp"android:layout_below="@id/text_01"android:layout_toRightOf="@id/text_04"android:background="@drawable/shape_b"android:text="5" /><Buttonandroid:id="@+id/text_06"style="@style/textStyle1"android:layout_width="70dp"android:layout_height="70dp"android:layout_below="@id/text_01"android:layout_toRightOf="@id/text_05"android:background="@drawable/shape_b"android:text="6" /><Buttonandroid:id="@+id/text_jiang"style="@style/textStyle2"android:layout_width="70dp"android:layout_height="70dp"android:layout_below="@id/text_jia"android:layout_toRightOf="@id/user_bai"android:background="@drawable/shape_o"android:text="-" /><Buttonandroid:id="@+id/text_07"style="@style/textStyle1"android:layout_width="70dp"android:layout_height="70dp"android:layout_below="@id/text_04"android:background="@drawable/shape_b"android:text="7" /><Buttonandroid:id="@+id/text_08"style="@style/textStyle1"android:layout_width="70dp"android:layout_height="70dp"android:layout_below="@id/text_04"android:layout_toRightOf="@id/text_07"android:background="@drawable/shape_b"android:text="8" /><Buttonandroid:id="@+id/text_09"style="@style/textStyle1"android:layout_width="70dp"android:layout_height="70dp"android:layout_below="@id/text_04"android:layout_toRightOf="@id/text_08"android:background="@drawable/shape_b"android:text="9" /><Buttonandroid:id="@+id/text_cheng"style="@style/textStyle2"android:layout_width="70dp"android:layout_height="70dp"android:layout_below="@id/text_jiang"android:layout_toRightOf="@id/user_bai"android:background="@drawable/shape_o"android:text="×" /><Buttonandroid:id="@+id/text_00"style="@style/textStyle1"android:layout_width="160dp"android:layout_height="80dp"android:layout_below="@id/text_07"android:background="@drawable/shape"android:text="0" /><Buttonandroid:id="@+id/text_dian"style="@style/textStyle1"android:layout_width="70dp"android:layout_height="70dp"android:layout_below="@id/text_07"android:layout_toRightOf="@id/text_00"android:background="@drawable/shape_b"android:text="." /><Buttonandroid:id="@+id/text_deng"style="@style/textStyle2"android:layout_width="70dp"android:layout_height="70dp"android:layout_below="@id/text_cheng"android:layout_toRightOf="@id/user_bai"android:background="@drawable/shape_o"android:text="=" /></RelativeLayout></RelativeLayout>

2、源代码

gitee下载地址:
 
1、通讯录:https://gitee.com/xu-pq/android-demo/tree/master/Android_Sqlite
 
2、记事本:https://gitee.com/xu-pq/android-demo/tree/master/Android_Notebook2
 
3、计算器:https://gitee.com/xu-pq/android-demo/tree/master/diyic


http://www.ppmy.cn/news/339568.html

相关文章

Jetson OrinNxNano平台 FPDlink Ⅲ相机采集---双目场景应用

1. 前言 基于上次在淘宝上采购的FPDlink Ⅲ相机采集套件使用一段时间之后; 不少人对此方案很感兴趣的,又激发了我继续写的激情; 上次帖子链接如下: Jetson Orin平台多路 FPDlink Ⅲ相机采集套装推荐_bingdund的博客-CSDN博客 最近在做双目场景的应用,提供算法人员做视…

如何兼顾性能+实时性处理缓冲数据?

我们经常会遇到这样的数据处理应用场景&#xff1a;我们利用一个组件实时收集外部交付给它的数据&#xff0c;并由它转发给一个外部处理程序进行处理。考虑到性能&#xff0c;它会将数据存储在本地缓冲区&#xff0c;等累积到指定的数量后打包发送&#xff1b;考虑到实时性&…

计算两个向量的外积numpy.outer()

【小白从小学Python、C、Java】 【等级考试500强双证书考研】 【Python-数据分析】 计算两个向量的外积 numpy.outer() 以下说法正确的是&#xff1a; import numpy as np a np.array([1,2]) print("【显示】a ",a) b np.array([3,4,5]) print("【显示】b &q…

TWS蓝牙耳机怎么挑选?值得买的蓝牙耳机推荐

现如今&#xff0c;TWS耳机市场品类丰富&#xff0c;参差不齐。在挑选蓝牙耳机时应该从需求出发&#xff0c;结合预算&#xff0c;找到真正合适的TWS蓝牙耳机。接下来&#xff0c;我为大家推荐几款值得入手的TWS蓝牙耳机&#xff0c;一起来看看吧。 一、南卡Lite Pro 2蓝牙耳机…

对耳朵伤害最小的耳机类型有哪些、不入耳蓝牙耳机推荐

如果平时喜欢戴着耳机听歌、看剧&#xff0c;并且一戴就是戴几个小时的朋友&#xff01;在此小编想说的是&#xff0c;如果控制不了自己使用耳机的时间&#xff0c;那么就尽量选择不伤耳的耳机&#xff01;骨传导耳机相对于其他耳机&#xff0c;可以更加好的保护听力&#xff0…

为什么建议不要买入耳式的耳机、骨传导耳机和入耳式耳机哪个好?

耳机可以说是我们生活中经常接触和使用的产品了&#xff0c;但是耳机对我们耳朵的影响&#xff0c;很多人并不清楚。经常戴耳机的人肯定深有体会&#xff0c;耳机滑落是常事&#xff0c;戴久了耳朵还胀痛&#xff0c;戴耳机听音乐可能会造成听力损伤和耳膜损伤、损坏&#xff0…

魔法打败魔法?OpenAI用GPT-4 来解释 GPT-2 的行为

大语言模型&#xff08;LLM&#xff09;像大脑一样&#xff0c;它们是由 “神经元” 组成的&#xff0c;它们观察文本中的一些特定模式&#xff0c;以影响整个模型接下来 “说” 什么。但由于 LLM 中的参数数量多到已经无法由人类解释的程度&#xff0c;因此&#xff0c;LLM 给…

我们熟悉的106短信的水好深啊

短信通道在短信平台中的作用起非常重要的作用&#xff0c;短信通道的好坏往往和短信发送的效果有着非常大的关系&#xff0c;下面就学习下有关短信通道的一些知识吧 国内短信通道主要是是由中国移动、中国联通和中国电信提供。目前最大份额的是中国移动&#xff0c;市场份额达到…