SQLite Database Problems

 Main Activity Code

package com.apdim3.sqlite;

import android.database.Cursor;
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;
import android.widget.Toast;

import androidx.appcompat.app.AppCompatActivity;

import com.apdim3.sqlite.simple.SimpleDbHelper;
import com.google.android.material.bottomsheet.BottomSheetDialog;
import com.google.android.material.floatingactionbutton.FloatingActionButton;

public class MainActivity extends AppCompatActivity {

TextView tvDisplay;
SimpleDbHelper dbHelper;
FloatingActionButton addNewData;

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

dbHelper = new SimpleDbHelper(MainActivity.this);
tvDisplay = findViewById(R.id.tvDisplay);
addNewData = findViewById(R.id.addNewData);

addNewData.setOnClickListener(v -> { showDialog(); });


showAllData();
}

private void showDialog(){
View view = LayoutInflater.from(this).inflate(R.layout.data_insert_dialog, null);
BottomSheetDialog dialog = new BottomSheetDialog(this);
dialog.setContentView(view);

EditText edName, edEmail;
Button btnInsert;

edName = view.findViewById(R.id.edName);
edEmail = view.findViewById(R.id.edEmail);
btnInsert = view.findViewById(R.id.btnInsert);

btnInsert.setOnClickListener(v -> {
String name = edName.getText().toString();
String email = edEmail.getText().toString();

dbHelper.insertData(name, email);

dialog.dismiss();
Toast.makeText(this, "Data has been Inserted", Toast.LENGTH_SHORT).show();
showAllData();
});

dialog.show();
}

private void showAllData(){
Cursor cursor = dbHelper.getAllData();
tvDisplay.setText("Total Data: " + cursor.getCount());

while (cursor.moveToNext()){
int id = cursor.getInt(0);
String name = cursor.getString(1);
String email = cursor.getString(2);

tvDisplay.append("\nID: " + id);
tvDisplay.append("\nName: " + name);
tvDisplay.append("\nEmail: " + email + "\n");
}
}
}


Database Helper code

package com.apdim3.sqlite.simple;

import android.content.ContentValues;
import android.content.Context;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteOpenHelper;

import androidx.annotation.Nullable;

public class SimpleDbHelper extends SQLiteOpenHelper {
public static final String DB_NAME = "my_database";
public static final int DB_VERSION = 1;


public SimpleDbHelper(@Nullable Context context) {
super(context, DB_NAME, null, DB_VERSION);
}

@Override
public void onCreate(SQLiteDatabase db) {
db.execSQL("CREATE TABLE my_table (id INTEGER PRIMARY KEY AUTOINCREMENT, name TEXT, email TEXT)");
}

@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
db.execSQL("DROP TABLE IF EXISTS my_table");

}

public void insertData(String name, String email){
SQLiteDatabase db = this.getWritableDatabase();
ContentValues conVal = new ContentValues();
conVal.put("name", name);
conVal.put("email", email);
db.insert("my_table", null, conVal);
}

public Cursor getAllData(){
SQLiteDatabase db = this.getReadableDatabase();
Cursor cursor = db.rawQuery("SELECT * FROM my_table", null);
return cursor;
}
}




Post a Comment

Post a Comment (0)

Previous Post Next Post