SQLite is best and lite weight database in mobile operating system. you can do all operation in SQLite like in all other database. If you have Lots of Records and want to display all detail of database you can use list view using different component of android like Text view ,Rating bar, Button etc .You can do main 4 types of operation on database like Select, update, delete and display. I will do all these operation but it having too much coding so I am gone break this in 2 part. So this is part-1 of database operation and I am gone cover insert and database helper class which is for connection between application and database. i have written all methods in this class so if i want any method like insert or update or create i can use this in all activity. This is re-usability of code so you don't have to write code in each activity. in this tutorial and in part-2 display, update and delete operation will be explain. In this tutorial I have used Product table in which user(Admin) can add product detail like name, description , rating or star to the product and available quantity.
In this tutorial I have used only one table but you can take any number of table. one thing you have to consider is cursor require “_id” field as per android document. Cursor will fetch record on the basis of “_id” column so you have to add this field in your table. if you have any query or problem then post in below comment box.
Keep coding and cheers ... =D
Main.xml
Main.java
package com.example.dbdemo;
import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.Menu;
import android.view.View;
import android.widget.Button;
public class Main extends Activity {
Button insert,view;
public static boolean isDbCreated = false;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
insert = (Button) findViewById(R.id.button1);
view = (Button) findViewById(R.id.button4);
insert.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
Intent insert = new Intent(getApplicationContext(),InsertActivity.class);
startActivity(insert);
}
});
view.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
Intent view = new Intent(Main.this,Display.class);
startActivity(view);
}
});
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.main, menu);
return true;
}
}
activity_Insert.xml
InsertActivity.java
package com.example.dbdemo;
import android.app.Activity;
import android.app.Dialog;
import android.os.Bundle;
import android.view.Menu;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.RatingBar;
import android.widget.RatingBar.OnRatingBarChangeListener;
public class InsertActivity extends Activity {
Button save,cancel;
EditText name,desc,quantity;
RatingBar rb;
float ratings;
int quan = 0;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_insert);
save = (Button) findViewById(R.id.btsave);
cancel = (Button) findViewById(R.id.btcancel);
name = (EditText) findViewById(R.id.editText1);
desc = (EditText) findViewById(R.id.editText2);
quantity = (EditText) findViewById(R.id.editText3);
rb = (RatingBar) findViewById(R.id.ratingBar1);
rb.setOnRatingBarChangeListener(new OnRatingBarChangeListener() {
@Override
public void onRatingChanged(RatingBar ratingBar, float rating,
boolean fromUser) {
// TODO Auto-generated method stub
ratings = rating;
}
});
final DbHelper helper = new DbHelper(InsertActivity.this);
save.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
boolean inserted = true;
try {
String pname = name.getText().toString();
String des = desc.getText().toString();
quan = Integer.parseInt(quantity.getText().toString());
helper.open();
helper.insert(pname , des , ratings , quan);
} catch (Exception e) {
// TODO: handle exception
inserted = false;
e.printStackTrace();
}
finally
{
if(inserted)
{
Dialog d = new Dialog(InsertActivity.this);
d.setTitle("Success..");
d.show();
}
helper.close();
name.setText("");
desc.setText("");
quantity.setText("");
}
}
});
cancel.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
finish();
}
});
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.insert, menu);
return true;
}
}
DbHelper.java
package com.example.dbdemo;
import android.content.ContentValues;
import android.content.Context;
import android.database.Cursor;
import android.database.SQLException;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteOpenHelper;
public class DbHelper {
public static final String DB_NAME = "mydb.db";
public static final int version = 1;
public static final String product_table = "tblproduct";
public static final String Emp_table = "Employee";
public static final String order_id = "_id";
public static final String pname = "pname";
public static final String desc = "desc";
public static final String quantity = "quantity";
public static final String rating = "rating";
private SQLiteDatabase ourdb;
private databaseHelper ourHelper;
public Context ourContext;
public DbHelper(Context c)
{
ourContext = c;
}
private class databaseHelper extends SQLiteOpenHelper
{
public databaseHelper(Context context) {
// TODO Auto-generated constructor stub
super(context, DB_NAME, null, version);
}
@Override
public void onCreate(SQLiteDatabase db) {
// TODO Auto-generated method stub
db.execSQL("create table " + product_table +" ( "+ order_id + " INTEGER PRIMARY KEY AUTOINCREMENT , " + pname + " TEXT NOT NULL ," + desc + " TEXT ,"
+ rating + " INTEGER ," + quantity +" INTEGER );");
}
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
// TODO Auto-generated method stub
}
}
public DbHelper open() throws SQLException
{
databaseHelper ourHelper = new databaseHelper(ourContext);
ourdb = ourHelper.getWritableDatabase();
return this;
}
public void close()
{
ourdb.close();
}
public long insert(String name, String des, Float ratings, int quan) throws SQLException
{
// TODO Auto-generated method stub
ContentValues cv = new ContentValues();
cv.put(pname, name);
cv.put(desc, des);
cv.put(rating, ratings);
cv.put(quantity, quan);
return ourdb.insertOrThrow(product_table, null, cv);
}
}
In this tutorial I have used only one table but you can take any number of table. one thing you have to consider is cursor require “_id” field as per android document. Cursor will fetch record on the basis of “_id” column so you have to add this field in your table. if you have any query or problem then post in below comment box.
Keep coding and cheers ... =D
0 comments :
Post a Comment