【安卓小项目】结合sqlite实现简易备忘录(附源码)

本文详细讲解了如何在安卓平台上利用SQLite数据库创建一个具备增删改查功能的简易备忘录应用。通过MainActivity展示备忘录列表,EditActivity和AmendActivity分别用于新建和编辑备忘录,配合RecyclerView和自定义适配器实现交互。提供源码以供参考。
摘要由CSDN通过智能技术生成

本文将介绍如何实现一个简易备忘录,具有增删改查功能,备忘录实现效果:
在这里插入图片描述
实现思路:
在这里插入图片描述
1、MainActivity中主要用recyclerView来展示备忘录列表,用户可以添加新的备忘录,单机item可以修改备忘录中内容,长按item可以删除备忘录
2、EditActivity:主要用来编辑新创建的备忘录
3、AmendActivity:主要用来修改备忘录中的内容

源码:
(有添加新的功能!)
源码地址

MainActivity:

public class MainActivity extends AppCompatActivity {
   

    private static final String TAG = "MainActivity";
    private ImageView mAddBtn;
    private RecyclerView mDataList;
    private DatabaseHelper mHelper;
    private MemoDataAdapter mMemoDataAdapter;


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

        initView();
        initData();
        initEvent();
    }

    /**
     * 初始化数据
     */
    private void initData() {
   
        //获取数据库中的内容
        List<Record> recordList = new ArrayList<>();
        SQLiteDatabase db = mHelper.getReadableDatabase();
        Cursor cursor = db.query(Constants.TABLE_NAME, null, null, null, null, null, null);
        while (cursor.moveToNext()) {
   
            Record record = new Record();
            //遍历数据库中的全部内容
            int id = cursor.getInt(cursor.getColumnIndex(Constants.MEMO_ID));
            String title = cursor.getString(cursor.getColumnIndex(Constants.MEMO_TITLE));
            String body = cursor.getString(cursor.getColumnIndex(Constants.MEMO_BODY));
            Log.d(TAG, "id is " + id);
            Log.d(TAG, "title is " + title);
            Log.d(TAG, "body is " + body);
            record.setId(id);
            record.setTitleName(title);
            record.setTextBody(body);
            recordList.add(record);
            Log.d(TAG, "success");
        }
        //此时成功遍历数据库中的数据
        //将数据设置到adapter中显示出来
        mMemoDataAdapter.setData(recordList);
        Log.d(TAG, "size  is " + recordList.size());
        cursor.close();
        db.close();
    }

    /**
     * 设置点击事件
     */
    private void initEvent() {
   
        //点击按钮跳转至编辑界面
        mAddBtn.setOnClickListener(new View.OnClickListener() {
   
            @Override
            public void onClick(View v) {
   
                Intent intent = new Intent(MainActivity.this, EditActivity.class);
                startActivity(intent);
            }
        });

        //点击item跳转到编辑界面
        mMemoDataAdapter.setOnItemClickLinstener(new MemoDataAdapter.OnItemClickLinstener() {
   
            @Override
            public void onClick(int position, String title, String body) {
   
                Toast.makeText(MainActivity.this, "clicked..." + position, Toast.LENGTH_SHORT).show();
                Intent intent = new Intent(MainActivity.this, AmendActivity.class);
                //将数据显示在amendActivity中
                Bundle bundle = new Bundle();
                bundle.putInt(Constants.MEMO_ID, position + 1);
                bundle.putString(Constants.MEMO_TITLE, title);
                bundle.putString(Constants.MEMO_BODY, body);
                intent.putExtras(bundle);
                startActivity(intent);
            }
        });

        //长按item删除
        mMemoDataAdapter.setOnItemLongClickLinstener(new MemoDataAdapter.OnItemLongClickListener() {
   
            @Override
            public void onLongClick(int position, String title, String body) {
   
                Toast.makeText(MainActivity.this, "long click", Toast.LENGTH_SHORT).show();
                //提示dialog
                Record record = new Record();
                record.setTitleName(title);
                record.setTextBody(body);
                record.setId(position);
                Log.d(TAG, "id is " + position);
                Log.d(TAG, "title is " + title);
                Log.d(TAG, "body is " + body);
                showDialog(position, record);
            }
        });
    }

    /**
     * 提示dialog是否删除该记录
     *
     * @param position
     * @param record
     */
    private void showDialog(final int position, final Record record) {
   
        AlertDialog.Builder dialog = new AlertDialog.Builder(MainActivity.this);
        dialog.setTitle("提示:");
        dialog.setMessage("是否删除当前记录");
        dialog.setPositiveButton("删除", new DialogInterface.OnClickListener() {
   
            @Override
            public void onClick(DialogInterface dialog, int which) {
   
                Log.d(TAG, "删除");
                //删除数据库中的记录
                doDelete(position, record);
            }
        });
        dialog.setNegativeButton
评论 9
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值