Leace
Leace

Reputation: 262

Insert checkbox values into Sqlite Database

I got multiple checkbox.My intention to save selected checkbox in to the sqlite database.Ex: If it is checked then value should be 1.And if it not checked then value should be 0. My current code is saving all checkbox text. Please advise. base

this is my code

Main activity.

    Spinner s1,s2,s3;
        Button btnAdd;
        EditText inputLabel;
        DatabaseHandler dbhndlr;
        Cursor spinner1csr, spinner2csr;
        SimpleCursorAdapter sca, sca2;
        long spinner1_selected = 0;
        CheckBox ck1,ck2,ck3,ck4,ck5,ck6,ck7,ck8;
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_spinner_ex4);
            s1 = (Spinner)findViewById(R.id.spinner1);
            s2 = (Spinner)findViewById(R.id.spinner2);
            s3 = (Spinner)findViewById(R.id.spinner3);
            btnAdd = (Button) findViewById(R.id.btn_add);
            inputLabel = (EditText) findViewById(R.id.input_label);
            dbhndlr = new DatabaseHandler(this);
            ck1=(CheckBox) findViewById(R.id.checkBox);
            ck2=(CheckBox)findViewById(R.id.checkBox2);
            ck3=(CheckBox)findViewById(R.id.checkBox3);
            ck4=(CheckBox)findViewById(R.id.checkBox4);
            ck6=(CheckBox) findViewById(R.id.checkBox5);
            ck7=(CheckBox)findViewById(R.id.checkBox6);
            ck8=(CheckBox)findViewById(R.id.checkBox7);

            loadSpinnerData();

            if (DatabaseUtils.queryNumEntries(dbhndlr.getWritableDatabase(),DatabaseHandler.TABLE_LABELS) < 1) {
                dbhndlr.insertlabel("899","Chris");
                dbhndlr.insertlabel("890","David");
            }


            // Get Cursors for Spinners
            spinner1csr = dbhndlr.getAllLabelsAsCursor();
            //Setup Adapter for Spinner 1
            sca = new SimpleCursorAdapter(this,
                    android.R.layout.simple_list_item_1,spinner1csr,
                    new String[]{DatabaseHandler.KEY_NAME},
                    new int[]{android.R.id.text1},
                    0
            );

            // Set the Adapters to the Spinners
            s1.setAdapter(sca);
            // Set Spinner1 OnSelectedItemListener



            s1.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
                @Override
                public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {
                    Toast.makeText(parent.getContext(),
                            "You Selected: " + id + " - " +
                                    spinner1csr.getString(
                                            spinner1csr.getColumnIndex(DatabaseHandler.KEY_NAME)) +
                                    " - " + spinner1csr.getString(spinner1csr.getColumnIndex(DatabaseHandler.KEY_ID))
                            ,
                            Toast.LENGTH_SHORT).show();
                    spinner1_selected = id;
                    spinner2csr = dbhndlr.getByRowid(spinner1_selected);
                    sca2.swapCursor(spinner2csr);
                }

                @Override
                public void onNothingSelected(AdapterView<?> parent) {
                }
            });

            //Steup Adapter for Spinner2
            spinner2csr = dbhndlr.getByRowid(spinner1_selected);
            sca2 = new SimpleCursorAdapter(this,
                    android.R.layout.simple_list_item_1,
                    spinner2csr,
                    new String[]{DatabaseHandler.KEY_ID},
                    new int[]{android.R.id.text1},
                    0
            );
            s2.setAdapter(sca2);
            // Set Spinner2 OnSelectedItemListener
        /* Not needed
        s2.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
            @Override
            public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {
                Toast.makeText(parent.getContext(),
                        "You Selected: " + id + " - " +
                                spinner2csr.getString(
                                        spinner2csr.getColumnIndex(DatabaseHandler.KEY_NAME)) +
                                " - " + spinner2csr.getString(spinner2csr.getColumnIndex(DatabaseHandler.KEY_ID)),
                        Toast.LENGTH_SHORT).show();
                spinner2_selected = id;
                spinner1csr = dbhndlr.getAllLabelsExceptedSelected(spinner2_selected);
                sca.swapCursor(spinner1csr);
            }

            @Override
            public void onNothingSelected(AdapterView<?> parent) {
            }
        });
        */

            btnAdd.setOnClickListener(new View.OnClickListener() {

                @Override
                public void onClick(View arg0) {
                        //String label = inputLabel.getText().toString();
                    String SaveString="No";
                    ck1.isChecked();
                    DatabaseHandler db = new DatabaseHandler(getApplicationContext());
                    String message1= ((Cursor) s1.getSelectedItem()).getString(2);
                    String message2= ((Cursor) s2.getSelectedItem()).getString(1);
                    String message = inputLabel.getText().toString();
                   // String message1 = s1.getSelectedItem().toString();
                   // String message2 = s2.getSelectedItem().toString();
                    String message10 = s3.getSelectedItem().toString();
                    String message4 = ck1.getText().toString();
                    String message5 = ck2.getText().toString();
                    String message6 = ck3.getText().toString();
                    String message7 = ck4.getText().toString();
                    String message9 = ck6.getText().toString();
                    String message3 = ck7.getText().toString();
                    String message8 = ck8.getText().toString();
                    db.insertLabel(message1,message2,message5,message6,message7,message9,message3,message4,message8,message10);
                    if (ck1.isChecked())
                    { SaveString="Yes";
                    }
                    else
                    {  SaveString="No";
                    }

                    if (ck2.isChecked())
                    { SaveString="Yes";
                    }
                    else
                    {  SaveString="No";
                    }

                    if (message.trim().length() > 0) {
                        // database handler commeneted out, use dbhndlr instance instead
                        // inserting new label into database


                        // 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
                        spinner1csr = dbhndlr.getAllLabelsAsCursor();
                        spinner2csr = dbhndlr.getByRowid(spinner1_selected);
                        sca.swapCursor(spinner1csr);
                        sca2.swapCursor(spinner2csr);
                    } else {
                        Toast.makeText(getApplicationContext(), "Please enter label name",
                                Toast.LENGTH_SHORT).show();
                    }
                }
            });
        }
    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> dataAdapter1 = new ArrayAdapter<String>(this,
                android.R.layout.simple_spinner_item, lables);

        // Drop down layout style - list view with radio button
        dataAdapter1
                .setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);

        // attaching data adapter to spinner
        s3.setAdapter(dataAdapter1);
    }
        @Override
        public void onDestroy() {
            spinner1csr.close();
            spinner2csr.close();
            super.onDestroy();
        }
    }

database

public class DatabaseHandler extends SQLiteOpenHelper {
        // Database Version
        public static final int DATABASE_VERSION = 1;

        // Database Name
        public static final String DATABASE_NAME = "spinnerExample";

        // Labels table name
        public static final String TABLE_LABELS = "labels"; //<<<< Made public
        public static final String TABLE_LABELS1= "labels1";
        public static final String TABLE_LABELS2= "labels2";
        // Labels Table Columns names
        public static final String KEY_ID4 = "input_label";
        public static final String KEY_ID = "id";           //<<<< Made public
        public static final String KEY_NAME = "name";       //<<<< made public
        public static final String KEY_ID1 = "id1";           //<<<< Made public
        public static final String KEY_NAME1 = "name1";
        public static final String KEY_1 = "number";           //<<<< Made public
        public static final String KEY_2 = "outletname";       //<<<< made public
        public static final String KEY_3 = "sunday";           //<<<< Made public
        public static final String KEY_4 = "monday";
        public static final String KEY_5 = "tuesday";
        public static final String KEY_6 = "wednesday";
        public static final String KEY_7 = "thursday";
        public static final String KEY_8 = "saturday";
        public static final String KEY_9 = "closed";
        public static final String KEY_10 = "calling";

        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_CATEGORIES_TABLE = "CREATE TABLE " + TABLE_LABELS + "("
                    + KEY_ID + " TEXT," + KEY_NAME + " TEXT)";
            String CREATE_CATEGORIES_TABLE1 = "CREATE TABLE " + TABLE_LABELS1 + "("
                    + KEY_ID1+ " TEXT," + KEY_NAME1+ " TEXT)";
            db.execSQL(CREATE_CATEGORIES_TABLE);
            db.execSQL(CREATE_CATEGORIES_TABLE1);
        }

        // Upgrading database
        @Override
        public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
            // Drop older table if existed
            db.execSQL("DROP TABLE IF EXISTS " + TABLE_LABELS);
            db.execSQL("DROP TABLE IF EXISTS " + TABLE_LABELS1);
            // Create tables again
            onCreate(db);
        }

        // Added for adding new data
        public void insertlabel(String id, String label) {
            SQLiteDatabase db = this.getWritableDatabase();
            ContentValues cv = new ContentValues();
            cv.put(KEY_ID,id);
            cv.put(KEY_NAME,label);
            db.insert(TABLE_LABELS,null,cv);
            db.close();
        }

        /**
         * Inserting new lable into lables table
         * */
            public void insertLabel(String message1, String message2,String message3,String message4,String message5,String message6,String message7,String message8,String message9,String message10){
                SQLiteDatabase db = this.getWritableDatabase();

                ContentValues values = new ContentValues();

                values.put(KEY_1, message1);
                values.put(KEY_2, message2);
                values.put(KEY_10,message10);
                values.put(KEY_3,message3);
                values.put(KEY_4,message4);
                values.put(KEY_5,message5);
                values.put(KEY_6,message6);
                values.put(KEY_7,message7);
                values.put(KEY_9,message9);

                values.put(KEY_8,message8);


                // Inserting Row
                db.insert(TABLE_LABELS2, null, values);
                db.close(); // Closing database connection
            }

        public void insertLabel1(String label){
            SQLiteDatabase db = this.getWritableDatabase();

            ContentValues values = new ContentValues();
            values.put(KEY_NAME1, label);

            // Inserting Row
            db.insert(TABLE_LABELS1, null, values);
            db.close(); // Closing database connection
        }
        public void insertLabel2(String label){
            SQLiteDatabase db = this.getWritableDatabase();


            ContentValues values = new ContentValues();
            values.put(KEY_NAME1, label);
            values.put(KEY_10, label);
            values.put(KEY_ID, label);

            db.insert(TABLE_LABELS2, null, values);
            db.close(); // Closing database connection
        }

        public List<String> getAllLabels(){
            List<String> labels = new ArrayList<String>();

            // Select All Query
            String selectQuery = "SELECT  * FROM " + TABLE_LABELS1;

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



        // Added to get Cursor for Simple CursorAdapter
        public Cursor getAllLabelsAsCursor() {
            String[] columns = new String[]{"rowid AS _id, *"}; // Need _id column for SimpleCursorAdapter
            return this.getWritableDatabase().query(TABLE_LABELS,columns,null,null,null,null,null);
        }

        public Cursor getAllLabelsExceptedSelected(long selected) {
            String[] columns = new String[]{"rowid AS _id, *"};
            String whereclause = "rowid <> ?";
            String[] whereargs = new String[]{String.valueOf(selected)};
            return this.getWritableDatabase().query(TABLE_LABELS,
                    columns,
                    whereclause,
                    whereargs,
                    null,
                    null,
                    null
            );
        }

        public Cursor getByRowid(long id) {
            String[] columns = new String[]{"rowid AS _id, *"};
            return this.getWritableDatabase().query(
                    TABLE_LABELS,
                    columns,
                    "rowid=?",
                    new String[]{String.valueOf(id)},
                    null,null,null
            );


        }

    }

Upvotes: 1

Views: 6395

Answers (2)

Munir
Munir

Reputation: 2558

You may directly store with the use of ternary operator like this

ck1.isChecked()?1:0

For Example

db.insertLabel(ck1.isChecked()?1:0,ck2.isChecked()?1:0,ck3.isChecked()?1:0);

Upvotes: 1

user311086
user311086

Reputation: 1088

Use this code to save checkbox value

 CheckboxName.isChecked();

Upvotes: 1

Related Questions