This is a next level tutorial where I am mixing two concepts The ListView concept that is explicitly explained in the ListView Tutorial and the SQLiteDB concept in into own tutorial.
Here I am intending to query a database using a SQLiteDatabase API. The results I obtain are in a Cursor object that I iterate and create an ArrayList that is passed to the ListView. Let us see the steps involved in this exercise:
In the onCreate( ) method I have 2 methods corresponding to the two steps described above:
openAndQueryDatabase();
Here is the first step:
private void openAndQueryDatabase() {
Now, DBHelper is a class I have written extending the SQLiteOpenHelper class. All that it does is create a database by name sample, create a table within it and insert values into the table. It does this if the database does not already exist. The table name is Resource and the columns in the table are Lastname, Firstname, Country, Age.
The code for this example can be downloaded here and you can look into the DBHelper code as well (which I do not want to elaborate here)
So, from the DBHelper class we get an open database which we call the newDB. Using this handle, we query the table for values. To keep it simple, while retrieving values I have hard-coded the column names which need not be the case. So I run a rawQuery and get the results into a Cursor.
Next I iterate through the Cursorand populate the results into an ArrayList of Strings result. In the finally block, I not only close the database but before that I delete all the entries inserted into the database by the DBHelper class just to clean up.
Next how do I display the results in a ListView. If you know ListView how it works it is rather simple. Else you could look at the ListViewTutorial. Here is the method:
private void displayResultList() {
Here I am intending to query a database using a SQLiteDatabase API. The results I obtain are in a Cursor object that I iterate and create an ArrayList that is passed to the ListView. Let us see the steps involved in this exercise:
In the onCreate( ) method I have 2 methods corresponding to the two steps described above:
openAndQueryDatabase();
displayResultList();
Let us see what each of them does:
Here is the first step:
private void openAndQueryDatabase() {
try {
DBHelper dbHelper = new DBHelper(this.getApplicationContext());
newDB = dbHelper.getWritableDatabase();
Cursor c = newDB.rawQuery("SELECT FirstName, Age FROM " +
tableName +
" where Age > 10 LIMIT 4", null);
if (c != null ) {
if (c.moveToFirst()) {
do {
String firstName = c.getString(c.getColumnIndex("FirstName"));
int age = c.getInt(c.getColumnIndex("Age"));
results.add("Name: " + firstName + ",Age: " + age);
}while (c.moveToNext());
}
}
} catch (SQLiteException se ) {
Log.e(getClass().getSimpleName(), "Could not create or Open the database");
} finally {
if (newDB != null)
newDB.execSQL("DELETE FROM " + tableName);
newDB.close();
}
}
Now, DBHelper is a class I have written extending the SQLiteOpenHelper class. All that it does is create a database by name sample, create a table within it and insert values into the table. It does this if the database does not already exist. The table name is Resource and the columns in the table are Lastname, Firstname, Country, Age.
The code for this example can be downloaded here and you can look into the DBHelper code as well (which I do not want to elaborate here)
So, from the DBHelper class we get an open database which we call the newDB. Using this handle, we query the table for values. To keep it simple, while retrieving values I have hard-coded the column names which need not be the case. So I run a rawQuery and get the results into a Cursor.
Next I iterate through the Cursorand populate the results into an ArrayList of Strings result. In the finally block, I not only close the database but before that I delete all the entries inserted into the database by the DBHelper class just to clean up.
Next how do I display the results in a ListView. If you know ListView how it works it is rather simple. Else you could look at the ListViewTutorial. Here is the method:
private void displayResultList() {
TextView tView = new TextView(this);
tView.setText("This data is retrieved from the database and only 4 " +
Saturday, March 26, 2016
Sunday, February 21, 2016
Android and its Fragmentation
Android has been making rapid strides into the Mobile market and has become a serious contender for the top 1 position in the mobile market (and is picking up on the tablet market quite quickly).
The fact that it was anopen platform allowing for lot of innovation and choice made the developer world and the mobile OEMs vouch for it and the inroads it madeinto the market was significant significant enough for Apple to stand up, take note and even file a law suit J
However, this very fact is now slowly turning to be a bane for the Android platform, as it has led to a huge amount of fragmentation in the market. OpenSignalMapshas done a research in 195 countries and has come up with the graphic that clearly depicts the kind of fragmentation in Android devices.

