Header Ads

Thêm dữ liệu vào SQLite Android làm app Todo

Thao tác thêm dữ liệu vào SQLite ứng dụng viết app Todo List

sqlite add

Ở bài trước Click chúng ta đã xây dựng xong phần SQLiteHelper giúp thao tác với database được lưu trong SQLite, ở đó có hai phương thức chính là lấy ra danh sách todo và thêm một trường dữ liệu vào database, hôm nay chúng ta sẽ làm chức năng thêm dữ liệu thông qua giao diện android.


Yêu cầu bài là đã học bài trước.

Oke, giờ chúng ta bắt tay vào xây dựng chức  năng Add Todo

Đầu tiên chúng ta cần tạo một Activity là AddActivity để thực hiện chức năng thêm dữ liệu vào DB

Các bạn thêm package mới vào phần view ->  sau đó tạo AddActivity vào trong đó


sqlite add


 Sau đó chúng ta sẽ thiết kế giao diện cho nó, giao diện bao gồm TextView và EditText


layout/activity_add.xml

<?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"    
tools:context="com.jundat95.todoapp.view.add.AddActivity">
<TextView        
android:id="@+id/tvHeader"        
android:layout_width="wrap_content"        
android:layout_height="wrap_content"        
android:layout_alignParentTop="true"        
android:layout_centerHorizontal="true"        
android:layout_marginTop="24dp"        
android:text="Add Todo"        
android:textSize="18sp" />

<EditText       
android:id="@+id/edtDate"        
android:layout_width="wrap_content"        
android:layout_height="wrap_content"        
android:layout_alignParentEnd="true"        
android:layout_alignParentStart="true"        
android:layout_centerVertical="true"        
android:ems="10"        
android:hint="Date"        
android:inputType="textPersonName" />

<EditText        
android:id="@+id/edtTitle"        
android:layout_width="wrap_content"        
android:layout_height="wrap_content"        
android:layout_above="@+id/edtDate"        
android:layout_alignParentEnd="true"        
android:layout_alignParentStart="true"        
android:layout_marginBottom="11dp"        
android:ems="10"        
android:hint="Title"        
android:inputType="textPersonName" />

<EditText        
android:id="@+id/edtContent"        
android:layout_width="wrap_content"        
android:layout_height="wrap_content"        
android:layout_alignParentEnd="true"        
android:layout_alignParentStart="true"        
android:layout_below="@+id/edtDate"        
android:layout_marginTop="14dp"        
android:ems="10"        
android:hint="Content"        
android:inputType="textPersonName" />

    
<Button        
android:id="@+id/btnAdd"        
android:layout_width="wrap_content"        
android:layout_height="wrap_content"        
android:layout_alignParentBottom="true"        
android:layout_centerHorizontal="true"        

android:layout_marginBottom="14dp"
        

Tiếp theo chúng ta sẽ sang AddActivity ánh xạ và thao tác thêm dữ liệu vào DB: App Todo sử dụng SQLite 





package com.jundat95.todoapp.view.add;

import android.content.ContentValues;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Toast;

import com.jundat95.todoapp.R;
import com.jundat95.todoapp.sqlite.SQLiteHelper;

import java.util.Date;

public class AddActivity extends AppCompatActivity {

    private Button btnAdd;
    private EditText edtTitle, edtDate, edtContent;

    private SQLiteHelper sqLiteHelper = new SQLiteHelper(this, 2);

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

        init();
    }

    private void init() {
        edtTitle = (EditText) findViewById(R.id.edtTitle);
        edtDate = (EditText) findViewById(R.id.edtDate);
        edtContent = (EditText) findViewById(R.id.edtContent);

        btnAdd = (Button) findViewById(R.id.btnAdd);
        btnAdd.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                addTodo();
            }
        });
    }

    private void addTodo() {
        // Tạo ra một Id random theo thoi gian
        long time = new Date().getTime();

        // Su dung contentValues để lưu dữ liệu, sau đó truyền vào SQLiteHelper
        ContentValues contentValues = new ContentValues();
        // Truyền vào contentValues dữ liệu có dạng [key, value]
        // Key là tên cột ở trong bảng, Value là giá trị muốn thêm vào cột đó

        contentValues.put("Id", time);
        contentValues.put("Title", edtTitle.getText().toString());
        contentValues.put("Date", edtDate.getText().toString());
        contentValues.put("Content", edtContent.getText().toString());

        // sử dụng phương thức addToDo với tham số là contentValues
        long n = sqLiteHelper.addToDo(contentValues);
        // n > 0 là thêm được dữ liệu vào trong bảng
        if(n > 0) {
            Toast.makeText(this, "Add complete", Toast.LENGTH_SHORT).show();
            // Destroy activity add
            finish();
        }
    }


}

Lưu ý sau khi thêm dữ liệu app báo thành công chúng ta thoát app ra vào lại sẽ
hiện thị dữ liệu mới thêm lên.

Like và share để ủng hộ mình nhé :D

No comments