Android Loading SQLite Data Into SpinnerView

In the previous tutorial we have discussed about CRUD Opertaions in , in this tutorial we shall see how to insert the data into sqlite database and load this data to android UI Component . 

Android SQLite SpinnerView

Download Code

Lets See An Example 
Project Detail
Project Name SqliteSpinnerDemo
Package com.pavan.sqlitespinnerdemo
Minimum SDK API 8
Target SDK API 17
Theme Holo Light with Dark Action Bar

Database Setup

file : DBhelper.java 
package com.pavan.sqlitespinnerdemo;import android.content.Context;import android.database.sqlite.SQLiteDatabase;import android.database.sqlite.SQLiteOpenHelper;public class DBhelper extends SQLiteOpenHelper {

 // TABLE INFORMATTION
 public static final String TABLE_MEMBER = "member"; public static final String MEMBER_ID = "_id"; public static final String MEMBER_NAME = "name"; // DATABASE INFORMATION
 static final String DB_NAME = "MEMBER.DB"; static final int DB_VERSION = 1; // TABLE CREATION STATEMENT
 private static final String CREATE_TABLE = "create table " + TABLE_MEMBER
   + "(" + MEMBER_ID + " INTEGER PRIMARY KEY AUTOINCREMENT, "
   + MEMBER_NAME + " TEXT NOT NULL);"; public DBhelper(Context context) {  super(context, DB_NAME, null, DB_VERSION);
 } @Override
 public void onCreate(SQLiteDatabase db) {
  db.execSQL(CREATE_TABLE);
 } @Override
 public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {  // TODO Auto-generated method stub

  db.execSQL("DROP TABLE IF EXISTS " + TABLE_MEMBER);
  onCreate(db);
 }
}
file : SQLController.java 
package com.pavan.sqlitespinnerdemo;import android.content.ContentValues;import android.content.Context;import android.database.Cursor;import android.database.SQLException;import android.database.sqlite.SQLiteDatabase;public class SQLController {
 private DBhelper dbhelper; private Context ourcontext; private SQLiteDatabase database; public SQLController(Context c) {
  ourcontext = c;
 } public SQLController open() throws SQLException {
  dbhelper = new DBhelper(ourcontext);
  database = dbhelper.getWritableDatabase();  return this;

 } public void close() {
  dbhelper.close();
 } public void insertData(String name) {
  ContentValues cv = new ContentValues();
  cv.put(DBhelper.MEMBER_NAME, name);
  database.insert(DBhelper.TABLE_MEMBER, null, cv);
 } public Cursor readData() {
  String[] allColumns = new String[] { DBhelper.MEMBER_ID,
    DBhelper.MEMBER_NAME };
  Cursor c = database.query(DBhelper.TABLE_MEMBER, allColumns, null,    null, null, null, null);  if (c != null) {
   c.moveToFirst();
  }  return c;
 }

}

XML Layout

file : activity_main.xml 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:orientation="vertical"
    android:padding="30dp" >

    <EditText        android:id="@+id/et_id"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:ems="10" >

        <requestFocus />
    </EditText>

    <Button        android:id="@+id/addbtn_id"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:layout_marginTop="10dp"
        android:text="Add Member" />

    <Spinner        android:id="@+id/spinner_id"
        android:layout_width="match_parent"
        android:layout_height="wrap_content" /></LinearLayout>
file :  spinner_item.xml 
<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical" >

    <TextView        android:id="@+id/textView1"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:padding="5dp"
        android:textColor="#000000"
        android:textSize="20dp" /></LinearLayout>

Activity

file : MainActivity.java 
package com.pavan.sqlitespinnerdemo;import java.util.ArrayList;import android.app.Activity;import android.database.Cursor;import android.os.Bundle;import android.view.View;import android.view.View.OnClickListener;import android.widget.ArrayAdapter;import android.widget.Button;import android.widget.EditText;import android.widget.Spinner;public class MainActivity extends Activity {

 Button AddBtn;
 EditText et;
 Spinner spn;

 SQLController SQLcon; @Override
 protected void onCreate(Bundle savedInstanceState) {  super.onCreate(savedInstanceState);
  setContentView(R.layout.activity_main);

  AddBtn = (Button) findViewById(R.id.addbtn_id);
  et = (EditText) findViewById(R.id.et_id);
  spn = (Spinner) findViewById(R.id.spinner_id);

  SQLcon = new SQLController(this);  // opening database
  SQLcon.open();

  loadtospinner();

  AddBtn.setOnClickListener(new OnClickListener() {   @Override
   public void onClick(View v) {

    String name = et.getText().toString();    // opening database
    SQLcon.open();    // insert data into table
    SQLcon.insertData(name);    // load sqlite table data into spinnerview
    loadtospinner();    // closing database
    SQLcon.close();

   }
  });
 } public void loadtospinner() {

  Cursor c = SQLcon.readData();
  ArrayList<String> al = new ArrayList<String>();

  c.moveToFirst();  while (!c.isAfterLast()) {

   String name = c.getString(c.getColumnIndex(DBhelper.MEMBER_NAME));
   al.add(name);
   c.moveToNext();
  }

  ArrayAdapter<String> aa1 = new ArrayAdapter<String>(
    getApplicationContext(), R.layout.spinner_item, R.id.textView1,
    al);

  spn.setAdapter(aa1);

 }
}


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章