MAD Prac 26
MAD Prac 26
Exercise:
1]Program:
activity_main:
<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout
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=".MainActivity">
<EditText
android:id="@+id/editTextRecordNum"
android:layout_width="318dp"
android:layout_height="50dp"
android:layout_marginStart="44dp"
android:layout_marginTop="124dp"
android:ems="10"
android:inputType="number"
android:singleLine="true"
android:textColor="#000000"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
<Button
android:id="@+id/buttonNormalInsert"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="44dp"
android:layout_marginTop="44dp"
android:text="Normal Insert"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/editTextRecordNum" />
<Button
android:id="@+id/buttonFastInsert"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="44dp"
android:layout_marginEnd="48dp"
android:text="Fast Insert"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toBottomOf="@+id/editTextRecordNum" />
<TextView
android:id="@+id/textViewStatus"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:padding="10dp"
android:text="Status"
android:textColor="#000000"
android:textSize="18sp"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/buttonNormalInsert" />
</androidx.constraintlayout.widget.ConstraintLayout>
MainActivity:
package com.example.mad;
import android.app.Activity;
import android.os.AsyncTask;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
editTextRecordNum = findViewById(R.id.editTextRecordNum);
tvStatus = findViewById(R.id.textViewStatus);
buttonNormalInsert.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
new AsyncInsertData("normal").execute();
}
});
buttonFastInsert.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
new AsyncInsertData("fast").execute();
}
});
}
AsyncInsertData(String type) {
this.type = type;
}
@Override
protected void onPreExecute() {
super.onPreExecute();
tvStatus.setText("Inserting " + editTextRecordNum.getText() + "
records...");
}
@Override
protected Void doInBackground(Void... voids) {
try {
int insertCount =
Integer.parseInt(editTextRecordNum.getText().toString());
DatabaseHandler databaseHandler = new
DatabaseHandler(MainActivity.this);
long lStartTime = System.nanoTime();
if (type.equals("normal")) {
databaseHandler.insertNormal(insertCount);
} else {
databaseHandler.insertFast(insertCount);
}
long lEndTime = System.nanoTime();
timeElapsed = lEndTime - lStartTime;
} catch (Exception e) {
e.printStackTrace();
}
return null;
}
@Override
protected void onPostExecute(Void aVoid) {
super.onPostExecute(aVoid);
tvStatus.setText("Done inserting records. Time elapsed: " + timeElapsed
/ 1000000 + " ms.");
}
}
}
DatabaseHandler:
package com.example.mad;
import android.content.ContentValues;
import android.content.Context;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteOpenHelper;
@Override
public void onCreate(SQLiteDatabase db) {
String CREATE_TABLE = "CREATE TABLE " + TABLE_NAME + "("
+ KEY_ID + " INTEGER PRIMARY KEY,"
+ KEY_NAME + " TEXT,"
+ KEY_DESCRIPTION + " TEXT" + ")";
db.execSQL(CREATE_TABLE);
}
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
db.execSQL("DROP TABLE IF EXISTS " + TABLE_NAME);
onCreate(db);
}