lundi 25 janvier 2016

Populate expandable list view with data from SQLiteDatabase

I'm trying to create an expandable list view where the parent is the name of the customer and the children are the customer's order details. I have a table where all of the order information (including customer information) is stored.

Is there any way that I can create a dynamic expandable list view that uses the values FIRST_NAME and USER_SURNAME as a parent in a list and have the values USER_EMAIL, USER_PHONE, NOOFSHIRTS etc. as the children of that parent? So when a new order is placed and the contents are saved to the table, a new list item will be created.

My DhHelper:

public class DbHelper extends SQLiteOpenHelper {

private static final String DATABASE_NAME = "ORDERINFODB";
private static final int DATABASE_VERSION = 1;
private static final String CREATE_QUERY =
        "CREATE TABLE "+ OM.NewOrderInfo.TABLE_NAME+" ("+ OM.NewOrderInfo.FIRST_NAME+" TEXT,"+
                OM.NewOrderInfo.USER_SURNAME+" TEXT,"+ OM.NewOrderInfo.USER_EMAIL+" TEXT,"+
                OM.NewOrderInfo.USER_PHONE+" TEXT,"+ OM.NewOrderInfo.ADD_INFO+" TEXT,"+
                OM.NewOrderInfo.NOOFSHIRTS+" TEXT,"+ OM.NewOrderInfo.COLOUROFSHIRTS+" TEXT,"+
                OM.NewOrderInfo.FRONTTEXT+" TEXT,"+ OM.NewOrderInfo.TEXTCOLOUR+" TEXT,"+
                OM.NewOrderInfo.BACKPRINT+" TEXT,"+ OM.NewOrderInfo.BACKCOLOUR+" TEXT,"+
                OM.NewOrderInfo.SHIRT1+"TEXT,"+ OM.NewOrderInfo.SHIRT2+"TEXT,"+
                OM.NewOrderInfo.SHIRT3+"TEXT,"+ OM.NewOrderInfo.SHIRT4+"TEXT,"+
                OM.NewOrderInfo.SHIRT5+"TEXT,"+ OM.NewOrderInfo.SHIRT6+"TEXT,"+
                OM.NewOrderInfo.SHIRT7+"TEXT,"+ OM.NewOrderInfo.SHIRT8+"TEXT,"+
                OM.NewOrderInfo.SHIRT9+"TEXT,"+ OM.NewOrderInfo.SHIRT10+"TEXT,"+
                OM.NewOrderInfo.SHIRT11+" TEXT,"+ OM.NewOrderInfo.ADD_INFO_O+" TEXT,"+
                OM.NewOrderInfo.ORDERTOTAL+" TEXT,"+ OM.NewOrderInfo.TAX+" TEXT,"+
                OM.NewOrderInfo.SUBTOTAL+" TEXT,"+ OM.NewOrderInfo.HASPAID+" TEXT,"+
                OM.NewOrderInfo.PAYMENT+" TEXT,"+ OM.NewOrderInfo.DEPOSITAMOUNT+" TEXT,"+
                OM.NewOrderInfo.DEPOSITMETHOD+" TEXT);";



public DbHelper(Context context){
    super(context, DATABASE_NAME, null, DATABASE_VERSION);
    Log.e("DATABASE OPERATIONS", "Database created / opened");
}

@Override
public void onCreate(SQLiteDatabase db) {
    db.execSQL(CREATE_QUERY);
    Log.e("DATABASE OPERATIONS", "Table created");
}

public void addInformation(String first_name,String surname,String email,String phone,String add_info,
                           String no_of_shirts,String colour_of_shirts,String front_text,String text_colour,
                           String back_print,String back_colour,String shirt_1,String shirt_2,String shirt_3,
                           String shirt_4,String shirt_5,String shirt_6,String shirt_7,String shirt_8,
                           String shirt_9,String shirt_10,String shirt_11,String add_info_o,String order_total,
                           String tax,String sub_total,String has_paid,String payment,String deposit_amount,
                           String deposit_method, SQLiteDatabase db){

    ContentValues contentValues = new ContentValues();

    contentValues.put(OM.NewOrderInfo.FIRST_NAME,first_name);
    contentValues.put(OM.NewOrderInfo.USER_SURNAME,surname);
    contentValues.put(OM.NewOrderInfo.USER_EMAIL,email);
    contentValues.put(OM.NewOrderInfo.USER_PHONE,phone);
    contentValues.put(OM.NewOrderInfo.ADD_INFO,add_info);
    contentValues.put(OM.NewOrderInfo.NOOFSHIRTS,no_of_shirts);
    contentValues.put(OM.NewOrderInfo.COLOUROFSHIRTS,colour_of_shirts);
    contentValues.put(OM.NewOrderInfo.FRONTTEXT,front_text);
    contentValues.put(OM.NewOrderInfo.TEXTCOLOUR,text_colour);
    contentValues.put(OM.NewOrderInfo.BACKPRINT,back_print);
    contentValues.put(OM.NewOrderInfo.BACKCOLOUR,back_colour);
    contentValues.put(OM.NewOrderInfo.SHIRT1,shirt_1);
    contentValues.put(OM.NewOrderInfo.SHIRT2,shirt_2);
    contentValues.put(OM.NewOrderInfo.SHIRT3,shirt_3);
    contentValues.put(OM.NewOrderInfo.SHIRT4,shirt_4);
    contentValues.put(OM.NewOrderInfo.SHIRT5,shirt_5);
    contentValues.put(OM.NewOrderInfo.SHIRT6,shirt_6);
    contentValues.put(OM.NewOrderInfo.SHIRT7,shirt_7);
    contentValues.put(OM.NewOrderInfo.SHIRT8,shirt_8);
    contentValues.put(OM.NewOrderInfo.SHIRT9,shirt_9);
    contentValues.put(OM.NewOrderInfo.SHIRT10,shirt_10);
    contentValues.put(OM.NewOrderInfo.SHIRT11,shirt_11);
    contentValues.put(OM.NewOrderInfo.ADD_INFO_O,add_info_o);
    contentValues.put(OM.NewOrderInfo.ORDERTOTAL,order_total);
    contentValues.put(OM.NewOrderInfo.TAX,tax);
    contentValues.put(OM.NewOrderInfo.SUBTOTAL,sub_total);
    contentValues.put(OM.NewOrderInfo.HASPAID,has_paid);
    contentValues.put(OM.NewOrderInfo.PAYMENT,payment);
    contentValues.put(OM.NewOrderInfo.DEPOSITAMOUNT,deposit_amount);
    contentValues.put(OM.NewOrderInfo.DEPOSITMETHOD,deposit_method);

    db.insert(OM.NewOrderInfo.TABLE_NAME, null, contentValues);
    Log.e("DATABASE OPERATIONS", "One row inserted");
    db.close();

}

public Cursor getInformation(SQLiteDatabase db){
    Cursor cursor;
    String[] proojections = {OM.NewOrderInfo.FIRST_NAME, OM.NewOrderInfo.USER_SURNAME, OM.NewOrderInfo.USER_EMAIL,
            OM.NewOrderInfo.USER_PHONE, OM.NewOrderInfo.ADD_INFO, OM.NewOrderInfo.NOOFSHIRTS, OM.NewOrderInfo.COLOUROFSHIRTS,
            OM.NewOrderInfo.FRONTTEXT, OM.NewOrderInfo.TEXTCOLOUR, OM.NewOrderInfo.BACKPRINT, OM.NewOrderInfo.BACKCOLOUR,
            OM.NewOrderInfo.SHIRT1,OM.NewOrderInfo.SHIRT2,OM.NewOrderInfo.SHIRT3,OM.NewOrderInfo.SHIRT4,OM.NewOrderInfo.SHIRT5,
            OM.NewOrderInfo.SHIRT6,OM.NewOrderInfo.SHIRT7,OM.NewOrderInfo.SHIRT8,OM.NewOrderInfo.SHIRT9,OM.NewOrderInfo.SHIRT10,
            OM.NewOrderInfo.SHIRT11, OM.NewOrderInfo.ADD_INFO_O, OM.NewOrderInfo.ORDERTOTAL, OM.NewOrderInfo.TAX,
            OM.NewOrderInfo.SUBTOTAL, OM.NewOrderInfo.HASPAID, OM.NewOrderInfo.PAYMENT, OM.NewOrderInfo.DEPOSITAMOUNT,
            OM.NewOrderInfo.DEPOSITMETHOD};
    cursor = db.query(OM.NewOrderInfo.TABLE_NAME,proojections,null,null,null,null,null);
    return cursor;
}

public DbHelper(Context context, String name, SQLiteDatabase.CursorFactory factory, int version) {
    super(context, name, factory, version);
}

public DbHelper(Context context, String name, SQLiteDatabase.CursorFactory factory, int version, DatabaseErrorHandler errorHandler) {
    super(context, name, factory, version, errorHandler);
}

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

}

}

Aucun commentaire:

Enregistrer un commentaire