Android Populating Spinner Data From SQLite Database
Android Populating Spinner Data From SQLite Database
SQLite Database
by Ravi Tamada/ June 24, 2012/ 61 Comments
This is spinner dropdown tutorial which has static data Android Spinner Dropdown Example. In
this tutorial i am explaining how to populate spinner data from SQLite Database. An example of
simple label management module is explained where you can insert new label into SQLite
database and spinner will populated with the set labels from database.
Open your SQLite handler class (DatabaseHandler.java) file and paste the following code.
DatabaseHandler.java
package com.example.androidhive;
import java.util.ArrayList;
import java.util.List;
import
import
import
import
import
android.content.ContentValues;
android.content.Context;
android.database.Cursor;
android.database.sqlite.SQLiteDatabase;
android.database.sqlite.SQLiteOpenHelper;
// Inserting Row
db.insert(TABLE_LABELS, null, values);
db.close(); // Closing database connection
/**
* Getting all labels
* returns list of labels
* */
public List<String> getAllLabels(){
List<String> labels = new ArrayList<String>();
// Select All Query
String selectQuery = "SELECT
SQLiteDatabase db = this.getReadableDatabase();
Cursor cursor = db.rawQuery(selectQuery, null);
// looping through all rows and adding to list
if (cursor.moveToFirst()) {
do {
labels.add(cursor.getString(1));
} while (cursor.moveToNext());
}
// closing connection
cursor.close();
db.close();
}
}
// returning lables
return labels;
4. Now open your main activity class and try the following code(In my case
AndroidSpinnerFromSQLiteActivity.java is my main activity). In the following code
loadSpinnerData() is called on onCreate() method to load the spinner data from SQLite
database
Once Add button is clicked, new label is inserted into database
After new label inserted into database, again loadSpinnerData() is called to load the spinner
with newly added data from SQLite database
AndroidSpinnerFromSQLiteActivity.java
package com.example.androidhive;
import java.util.List;
import
import
import
import
import
import
import
import
import
import
import
import
android.app.Activity;
android.content.Context;
android.os.Bundle;
android.view.View;
android.view.inputmethod.InputMethodManager;
android.widget.AdapterView;
android.widget.AdapterView.OnItemSelectedListener;
android.widget.ArrayAdapter;
android.widget.Button;
android.widget.EditText;
android.widget.Spinner;
android.widget.Toast;
getApplicationContext());
// inserting new label into database
db.insertLabel(label);
// making input filed text to blank
inputLabel.setText("");
// Hiding the keyboard
InputMethodManager imm = (InputMethodManager)
getSystemService(Context.INPUT_METHOD_SERVICE);
imm.hideSoftInputFromWindow(inputLabel.getWindowToken(),
0);
// loading spinner with newly added data
loadSpinnerData();
} else {
Toast.makeText(getApplicationContext(), "Please enter label
name",
Toast.LENGTH_SHORT).show();
}
}
});
/**
* Function to load the spinner data from SQLite database
* */
private void loadSpinnerData() {
// database handler
DatabaseHandler db = new DatabaseHandler(getApplicationContext());
// Spinner Drop down elements
List<String> lables = db.getAllLabels();
// Creating adapter for spinner
ArrayAdapter<String> dataAdapter = new ArrayAdapter<String>(this,
android.R.layout.simple_spinner_item, lables);
// Drop down layout style - list view with radio button
dataAdapter
.setDropDownViewResource(android.R.layout.simple_spinner_dropdo
wn_item);
@Override
public void onItemSelected(AdapterView<?> parent, View view, int position,
long id) {
// On selecting a spinner item
String label = parent.getItemAtPosition(position).toString();
// Showing selected spinner item
Toast.makeText(parent.getContext(), "You selected: " + label,
Toast.LENGTH_LONG).show();
}
@Override
public void onNothingSelected(AdapterView<?> arg0) {
// TODO Auto-generated method stub
}
Run your project and always check your log cat to debug your application (If you got force close
errors).
Adding new label in database