0% found this document useful (0 votes)
30 views

SQLite Android Notes

This Java code defines classes for handling a SQLite database of labels and populating a spinner widget from the database. The DatabaseHandler class defines methods for creating/upgrading the database table, inserting/retrieving labels from the table. The MainActivity class uses DatabaseHandler to load labels and populate the spinner, and also handles adding new labels on a button click by inserting into the database table.

Uploaded by

Robert Bautista
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
30 views

SQLite Android Notes

This Java code defines classes for handling a SQLite database of labels and populating a spinner widget from the database. The DatabaseHandler class defines methods for creating/upgrading the database table, inserting/retrieving labels from the table. The MainActivity class uses DatabaseHandler to load labels and populate the spinner, and also handles adding new labels on a button click by inserting into the database table.

Uploaded by

Robert Bautista
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 7

DatabaseHandler.

java

package com.example.sbase;

import android.content.ContentValues;

import android.content.Context;

import android.database.Cursor;

import android.database.sqlite.SQLiteDatabase;

import android.database.sqlite.SQLiteOpenHelper;

import java.util.ArrayList;

import java.util.List;

public class DatabaseHandler extends SQLiteOpenHelper {

private static final int DATABASE_VERSION = 1;

private static final String DATABASE_NAME = "spinnerExample";

private static final String TABLE_NAME = "labels";

private static final String COLUMN_ID = "id";

private static final String COLUMN_NAME = "name";

public DatabaseHandler(Context context) {

super(context, DATABASE_NAME, null, DATABASE_VERSION);

// Creating Tables

@Override

public void onCreate(SQLiteDatabase db) {

// Category table create query

String CREATE_ITEM_TABLE = "CREATE TABLE " + TABLE_NAME + "("

+ COLUMN_ID + " INTEGER PRIMARY KEY," + COLUMN_NAME + " TEXT)";

db.execSQL(CREATE_ITEM_TABLE);
}

// Upgrading database

@Override

public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {

// Drop older table if existed

db.execSQL("DROP TABLE IF EXISTS " + TABLE_NAME);

// Create tables again

onCreate(db);

/**

* Inserting new lable into lables table

* */

public void insertLabel(String label){

SQLiteDatabase db = this.getWritableDatabase();

ContentValues values = new ContentValues();

values.put(COLUMN_NAME, label);//column name, column value

// Inserting Row

db.insert(TABLE_NAME, null, values);//tableName, nullColumnHack, CotentValues

db.close(); // Closing database connection

/**

* Getting all labels

* returns list of labels


* */

public List<String> getAllLabels(){

List<String> list = new ArrayList<String>();

// Select All Query

String selectQuery = "SELECT * FROM " + TABLE_NAME;

SQLiteDatabase db = this.getReadableDatabase();

Cursor cursor = db.rawQuery(selectQuery, null);//selectQuery,selectedArguments

// looping through all rows and adding to list

if (cursor.moveToFirst()) {

do {

list.add(cursor.getString(1));//adding 2nd column data

} while (cursor.moveToNext());

// closing connection

cursor.close();

db.close();

// returning lables

return list;

}
MainActivity.java

package com.example.sbase;

import java.util.List;

import android.app.Activity;

import android.content.Context;

import android.os.Bundle;

import android.view.Menu;

import android.view.MenuItem;

import android.view.View;

import android.view.inputmethod.InputMethodManager;

import android.widget.AdapterView;

import android.widget.AdapterView.OnItemSelectedListener;

import android.widget.ArrayAdapter;

import android.widget.Button;

import android.widget.EditText;

import android.widget.Spinner;

import android.widget.Toast;

public class MainActivity extends Activity implements OnItemSelectedListener {

Spinner spinner;

Button btnAdd;

EditText inputLabel;

@Override

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.activity_main);
spinner = (Spinner) findViewById(R.id.spinner1);

btnAdd = (Button) findViewById(R.id.button1);

inputLabel = (EditText) findViewById(R.id.editText1);

spinner.setOnItemSelectedListener(this);

// Loading spinner data from database

loadSpinnerData();

btnAdd.setOnClickListener(new View.OnClickListener() {

@Override

public void onClick(View arg0) {

String label = inputLabel.getText().toString();

if (label.trim().length() > 0) {

DatabaseHandler db = new DatabaseHandler(getApplicationContext());

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();

});

private void loadSpinnerData() {

DatabaseHandler db = new DatabaseHandler(getApplicationContext());

List<String> labels = db.getAllLabels();

// Creating adapter for spinner

ArrayAdapter<String> dataAdapter = new


ArrayAdapter<String>(this,android.R.layout.simple_spinner_item, labels);

// Drop down layout style - list view with radio button

dataAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);

// attaching data adapter to spinner

spinner.setAdapter(dataAdapter);

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();

public void onNothingSelected(AdapterView<?> arg0) {

// TODO Auto-generated method stub

@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;

@Override

public boolean onOptionsItemSelected(MenuItem item) {

// Handle action bar item clicks here. The action bar will

// automatically handle clicks on the Home/Up button, so long

// as you specify a parent activity in AndroidManifest.xml.

int id = item.getItemId();

if (id == R.id.action_settings) {

return true;

return super.onOptionsItemSelected(item);

You might also like