Android studio 记事本项目(增删改查功能完整代码)

实现效果:

 

界面布局:

activity_main.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"
    tools:context=".MainActivity"
    android:background="@drawable/background_h">

    <TextView
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="记事本"
        android:id="@+id/title"
        android:textSize="30sp"
        android:textColor="@color/white"
        android:background="#F191D9"
        android:gravity="center"
         />
    <ListView
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:layout_below="@+id/title"
        android:id="@+id/listview"/>
    <ImageView
        android:id="@+id/add"
        android:layout_alignParentBottom="true"
        android:layout_centerHorizontal="true"
        android:layout_width="80dp"
        android:layout_height="80dp"
        android:src="@drawable/add"
        />

</RelativeLayout>

activity_record.xml: 

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout 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:orientation="vertical"
    tools:context=".RecordActivity"
    android:background="@drawable/background_h">
    
    <RelativeLayout
        android:layout_width="match_parent"
        android:layout_height="50dp"
        android:background="#ED8EE4"
        >
        <ImageView
            android:layout_width="50dp"
            android:layout_height="50dp"
            android:id="@+id/backHome"
            android:src="@drawable/back">
        </ImageView>
        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="记事本"
            android:textSize="30sp"
            android:textColor="@color/white"
            android:layout_centerHorizontal="true"
            android:id="@+id/title">
        </TextView>
    </RelativeLayout>
    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:id="@+id/show_time"
        android:textColor="#CD4AB7"
        android:layout_gravity="center"
        android:text="显示时间"
        android:visibility="invisible"
        android:textSize="30sp">
    </TextView>


    <TableRow
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:layout_weight="1">

        <EditText
            android:id="@+id/content"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_gravity=""
            android:hint="请输入文本信息"
            android:textColorHint="#DF2BEC"
            android:textSize="25sp"></EditText>
    </TableRow>

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="50dp"
        android:orientation="horizontal">
        <ImageView
            android:layout_weight="1"
            android:layout_width="0dp"
            android:layout_height="match_parent"
            android:id="@+id/delete"
            android:src="@drawable/delete">
        </ImageView>
        <ImageView
            android:layout_weight="1"
            android:layout_width="0dp"
            android:layout_height="match_parent"
            android:id="@+id/save_note"
            android:src="@drawable/save_note">
        </ImageView>
    </LinearLayout>

</LinearLayout>

item_layout.xml: 

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:orientation="vertical"
    android:layout_height="match_parent">
<TextView
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:id="@+id/itm_content"
    android:text="文本信息。。。。"
    android:textColor="@color/black"
    android:textSize="20dp"
    android:maxLines="2"
    android:ellipsize="end"/>
    
    <TextView
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:id="@+id/item_time"
        android:text="时间"
        android:textColor="#DF55E9"
        android:textSize="15dp">
    </TextView>

</LinearLayout>

java代码:

package cn.itcast.study;

import androidx.annotation.Nullable;
import androidx.appcompat.app.AlertDialog;
import androidx.appcompat.app.AppCompatActivity;

import android.content.DialogInterface;
import android.content.Intent;
import android.database.sqlite.SQLiteOpenHelper;
import android.os.Bundle;
import android.view.View;
import android.widget.AdapterView;
import android.widget.ImageView;
import android.widget.ListView;
import android.widget.Toast;

import java.util.List;

public class MainActivity extends AppCompatActivity {
    private ListView listView;
    private ImageView add;
    private MyDBHelper myDBHelper;
    private MyAdapter myAdapter;
    private List<Note> resulList;


    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        listView = findViewById(R.id.listview);
        add = findViewById(R.id.add);
        add.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                //点击添加按钮,跳转到recoractivate页面进行数据添加
                Intent intent = new Intent(MainActivity.this, RecordActivity.class);
                //数据回传:跳转之后,期望第二个页面回传数据
                startActivityForResult(intent, 1);
            }
        });
        //数据初始化
        init();
        //设置列表项的点击监听器
        listView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
            @Override
            public void onItemClick(AdapterView<?> adapterView, View view, int i, long l) {
                //当列表项被点击时对该项的内容进行修改
                Note note = (Note) myAdapter.getItem(i);
                //创建意图,将用户选中的内容传递到修改页面
                Intent intent = new Intent(MainActivity.this,RecordActivity.class);
                String sendId = note.getId();
                String sendContent = note.getContent();
                String sendTime = note.getNote_time();
                intent.putExtra("id",sendId);
                intent.putExtra("content",sendContent);
                intent.putExtra("time",sendTime);
                startActivityForResult(intent,1);
            }
        });
        //列表项长按监听器,删除对应项内容
        listView.setOnItemLongClickListener(new AdapterView.OnItemLongClickListener() {
            @Override
            public boolean onItemLongClick(AdapterView<?> adapterView, View view, int i, long l) {
                //确定要删除的几率是那一条
                //对话框删除
                AlertDialog dialog = null;
                AlertDialog.Builder builder = new AlertDialog.Builder(MainActivity.this);
                builder.setTitle("删除记录")
                        .setMessage("你确定要删除这条记录吗")
                        .setPositiveButton("确定", new DialogInterface.OnClickListener() {
                            @Override
                            public void onClick(DialogInterface dialogInterface, int a) {
                                Note note = (Note) myAdapter.getItem(i);
                                String deleteId = note.getId();
                                myDBHelper.deleteData(deleteId);
                                if (myDBHelper.deleteData(deleteId)) {
                                    init();
                                    Toast.makeText(MainActivity.this, "删除成功", Toast.LENGTH_SHORT).show();
                                } else {
                                    Toast.makeText(MainActivity.this, "删除失败", Toast.LENGTH_SHORT).show();
                                }
                            }
                        })
                        .setNegativeButton("取消", new DialogInterface.OnClickListener() {
                            @Override
                            public void onClick(DialogInterface dialogInterface, int i) {
                                dialog.dismiss();
                            }
                        })
                        .create()
                        .show();
                return true;
            }
        });
    }

    //查询数据库内容,将表中的数据显示在listView上面
    private void init() {
        if (resulList != null) {
            resulList.clear();
        }

        myDBHelper = new MyDBHelper(MainActivity.this, "note.db", null, 1);
        resulList = myDBHelper.query();
        myAdapter = new MyAdapter(resulList, MainActivity.this);
        listView.setAdapter(myAdapter);
    }

    //将数据回传时自动执行的方法,用于接受回传过来的数据
    @Override
    protected void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) {
        super.onActivityResult(requestCode, resultCode, data);
        if (requestCode == 1 && resultCode == 2) {
            //说明数据的添加是正常执行的,数据库新增一条记录,主页中listView的内容就应该更新一下
            init();

        }
    }
}

这段代码是一个Android应用中的主Activity,用于显示记事本的主界面,并实现了一些基本的功能,包括添加、修改和删除笔记等操作。

在onCreate方法中,首先通过findViewById方法获取了布局文件中的ListView和ImageView控件,并为ImageView添加了点击事件监听器,用于跳转到添加笔记的页面。然后调用了init方法进行数据的初始化,并为ListView设置了点击和长按的监听器,用于处理笔记的查看、修改和删除操作。

在init方法中,首先清空了resulList(笔记列表数据),然后实例化了MyDBHelper对象用于数据库操作,并调用了query方法查询数据库中的笔记数据,最后使用自定义的MyAdapter将查询到的数据显示在ListView中。

另外,还实现了onActivityResult方法,用于接收从其他页面返回的数据,当requestCode为1且resultCode为2时,表示数据添加操作成功,此时需要调用init方法刷新ListView中的数据。

总的来说,这段代码实现了一个记事本应用的主界面功能,包括添加、修改和删除笔记等操作。

  • 14
    点赞
  • 27
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 4
    评论
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

快乐的甲方

你的鼓励是我博文创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值