vendredi 3 avril 2015

Display array from database into spinner

I used an Array full of checkbox's to save data into one colum of a table. I want to display each item from this array in a spinner so it can be selectable.


I want to get the content from the column named KEY_FACILITIES_TYPE and display all the items saved in the array into a spinner. So what method can i put in the database? and how do i display it in a spinner? Here is my database file





package com.example.com.facilitiesreviewapp;

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;
import android.util.Log;

// creating the class
public class SQL {

/////////////////////////////////////////////////////////////////////
// Constants & Data
/////////////////////////////////////////////////////////////////////
// For logging:
private static final String TAG = "DBAdapter";

// declaring and initializing data Primary Key Fields for both tables
public static final String KEY_ROWID = "_id";
public static final int COL_ROWID = 0;

public static final String KEY_REVIEWROWID = "_id";
public static final int COL_REVROWID = 0;

//declaring and initializing other database Fields for both tables
public static final String KEY_STATION_NAME = "StationName";
public static final String KEY_STATION_TYPE = "StationType";
public static final String KEY_FACILITIES_TYPE = "Facilities";
public static final String KEY_LOCATION = "Location";
public static final String KEY_EMAIL = "Email";
public static final String KEY_STATION_ID = "userId";

public static final String KEY_REV_STATION_NAME = "revStationName";
public static final String KEY_DATE = "Date";
public static final String KEY_REV_FACILITY = "revFacility";
public static final String KEY_RATING = "Rating";
public static final String KEY_COMMENT = "Comment";


//Defining Field numbers for both tables
public static final int COL_STATION_NAME = 2;
public static final int COL_STATION_TYPE = 3;
public static final int COL_FACILITIES_TYPE = 4;
public static final int COL_LOCATION = 5;
public static final int COL_EMAIL = 5;
public static final int COL_STATION_ID = 1;

public static final int COL_REV_STATION_NAME = 1;
public static final int COL_DATE = 2;
public static final int COL_REV_FACILITY = 3;
public static final int COL_RATING = 4;
public static final int COL_COMMENTS = 5;

// declaring and initializing a string to get all fields from Establishment Table
public static final String[] ALL_KEYS = new String[]{KEY_ROWID, KEY_STATION_NAME,
KEY_STATION_TYPE, KEY_FACILITIES_TYPE, KEY_LOCATION, KEY_EMAIL, KEY_STATION_ID};

//declaring and initializing a string to get all fields from Review Table
public static final String[] ALL_REV_KEYS = new String[]{KEY_REVIEWROWID, KEY_REV_STATION_NAME,
KEY_DATE, KEY_REV_FACILITY, KEY_RATING, KEY_COMMENT};


// declaring and initializing database name, and the two tables
public static final String DATABASE_NAME = "FacilitiesReview";
public static final String DATABASE_TABLE = "Stations";
public static final String DATABASE_TABLE2 = "Review";

// declaring and initializing a variable for tracking DB version if a new version of
// the application changes the format.
public static final int DATABASE_VERSION = 2;

// declaring and initializing a string to create the Establishment Table
private static final String DATABASE_CREATE_SQL =
"create table " + DATABASE_TABLE
+ " (" + KEY_ROWID + " integer primary key autoincrement, "
+ KEY_STATION_NAME + " text,"
+ KEY_STATION_TYPE + " text,"
+ KEY_FACILITIES_TYPE + " text,"
+ KEY_LOCATION + " text,"
+ KEY_EMAIL + " text,"
+ KEY_STATION_ID + " text"
+ ");";

// declaring and initializing a string to create the Review Table
private static final String DATABASE2_CREATE_SQL =
"create table " + DATABASE_TABLE2
+ " (" + KEY_REVIEWROWID + " integer primary key autoincrement, "
+ KEY_REV_STATION_NAME + " text,"
+ KEY_DATE + " text,"
+ KEY_REV_FACILITY + " text,"
+ KEY_RATING + " text,"
+ KEY_COMMENT + " text"
+ ");";

// Creating the Context of application who uses us.
private final Context context;

private DatabaseHelper myDBHelper;
private SQLiteDatabase db;

/////////////////////////////////////////////////////////////////////
// Public methods:
/////////////////////////////////////////////////////////////////////

public SQL(Context ctx) {
this.context = ctx;
myDBHelper = new DatabaseHelper(context);
}

// Opening the database connection.
public SQL open() {
db = myDBHelper.getWritableDatabase();
return this;
}

// Close the database connection.
public void close() {
myDBHelper.close();
}

// Method for Adding a new establishment to the database.
public long insertStation(String strStationID, String strName, String strStationType, String strFacilities, String strLocation,
String strEmail) {

//assigning user input with database rows
ContentValues values = new ContentValues();
values.put(KEY_STATION_ID, strStationID);
values.put(KEY_STATION_NAME, strName);
values.put(KEY_STATION_TYPE, strStationType);
values.put(KEY_FACILITIES_TYPE, strFacilities);
values.put(KEY_LOCATION, strLocation);
values.put(KEY_EMAIL, strEmail);


// Inserting it into the database
return db.insert(DATABASE_TABLE, null, values);
}

// Method for Adding a new review to the database.
public long insertReviewRow(String strRevStation, String strDate, String strRevFacility, Float strRating, String strComment) {

//assigning user input with database rows
ContentValues review_values = new ContentValues();
review_values.put(KEY_REV_STATION_NAME, strRevStation);
review_values.put(KEY_DATE, strDate);
review_values.put(KEY_REV_FACILITY, strRevFacility);
review_values.put(KEY_RATING, strRating);
review_values.put(KEY_COMMENT, strComment);

//Inserting it into the database
return db.insert(DATABASE_TABLE2, null, review_values);
}

/* method for Deleting a row from the database Establishment Table,
by rowId (primary key/ Establishment)
from the Establishment Table */
public boolean deleteRow(long rowId) {
String where = KEY_ROWID + "=" + rowId;
return db.delete(DATABASE_TABLE, where, null) != 0;
}


// Method for fetching all data in the database from the Establishment Table.
public Cursor getAllRows() {
String where = null;
Cursor c = db.query(true, DATABASE_TABLE, ALL_KEYS,
where, null, null, null, KEY_STATION_NAME, null);
if (c != null) {
c.moveToFirst();
}
return c;
}

// Method for fetching all data in the database from the Review Table of the particular establishment
// (by using passed establishment)
public Cursor getAllReviewRows(String establishment) {
//String where = null;
String where = KEY_REV_STATION_NAME + " = '" + establishment + "'";
Cursor c = db.query(true, DATABASE_TABLE2, ALL_REV_KEYS,
where, null, null, null, KEY_DATE, null);
if (c != null) {
c.moveToFirst();
}
return c;
}

// Method for fetching data for a particular establishment (by using passed rowId)
public Cursor getRow(long rowId) {
String where = KEY_ROWID + "=" + rowId;
Cursor c = db.query(true, DATABASE_TABLE, ALL_KEYS,
where, null, null, null, null, null);
if (c != null) {
c.moveToFirst();
}
return c;
}


/////////////////////////////////////////////////////////////////////
// Private Helper Classes:
/////////////////////////////////////////////////////////////////////

/**
* Private class which handles database creation and upgrading.
* Used to handle low-level database access.
*/
private static class DatabaseHelper extends SQLiteOpenHelper {
DatabaseHelper(Context context) {
super(context, DATABASE_NAME, null, DATABASE_VERSION);
}

@Override
// Method for creating the Database
public void onCreate(SQLiteDatabase _db) {
_db.execSQL(DATABASE_CREATE_SQL);
_db.execSQL(DATABASE2_CREATE_SQL);
}

@Override
// Method for upgrading the database
public void onUpgrade(SQLiteDatabase _db, int oldVersion, int newVersion) {
Log.w(TAG, "Upgrading application's database from version " + oldVersion
+ " to " + newVersion + ", which will destroy all old data!");

// Destroying old database:
_db.execSQL("DROP TABLE IF EXISTS " + DATABASE_TABLE);
_db.execSQL("DROP TABLE IF EXISTS " + DATABASE_TABLE2);
// Recreate new database:
onCreate(_db);
}
}


public Cursor fetchStationsByName(String inputText) throws SQLException {
Log.w(TAG, inputText);
Cursor mCursor = null;
if (inputText == null || inputText.length() == 0) {
mCursor = db.query(DATABASE_TABLE, new String[]{KEY_ROWID,
KEY_STATION_ID, KEY_STATION_NAME, KEY_STATION_TYPE, KEY_FACILITIES_TYPE,KEY_LOCATION,KEY_EMAIL},
null, null, null, null, null);

} else {
mCursor = db.query(true, DATABASE_TABLE, new String[]{KEY_ROWID,
KEY_STATION_ID, KEY_STATION_NAME, KEY_STATION_TYPE, KEY_FACILITIES_TYPE,KEY_LOCATION,KEY_EMAIL},
KEY_STATION_NAME + " like '%" + inputText + "%'", null,
null, null, null, null);
}
if (mCursor != null) {
mCursor.moveToFirst();
}
return mCursor;

}

}



Aucun commentaire:

Enregistrer un commentaire