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

文章目录

    • 一、引言
    • 二、设计
      • 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() {
            @Override
            public 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() {
            @Override
            public 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界面设计

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

  • 效果
    【Android开发基础】SQLite开发复刻通讯录、记事本、计算机_第1张图片
  • 代码

<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">

    <EditText
        android:id="@+id/main_01"
        android:layout_width="match_parent"
        android:layout_height="120dp"
        android:textColor="#fff"
        android:gravity="center_vertical|right"
        android:background="#F0F0F0"/>

    <RelativeLayout
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_below="@id/main_01"
        android:layout_marginTop="20dp">

        <Button
            android: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"/>

        <Button
            android: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" />

        <Button
            android: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" />

        <Button
            android: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="÷" />

        <Button
            android: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" />

        <Button
            android: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" />

        <Button
            android: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" />

        <Button
            android: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="+" />

        <Button
            android: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" />

        <Button
            android: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" />

        <Button
            android: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" />

        <Button
            android: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="-" />

        <Button
            android: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" />

        <Button
            android: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" />

        <Button
            android: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" />

        <Button
            android: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="×" />

        <Button
            android: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" />

        <Button
            android: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="." />

        <Button
            android: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

你可能感兴趣的:(Android开发,sqlite,android,数据库)