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
Ở 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 đó
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();
}
}
}
Post a Comment