Blog purpose for android basic example for android app developer. any query please my contact

Sunday 19 April 2020

how to insert spinner value in sqlite database in android

 

Today learn how to insert spinner value in SQLite database in android. Android studio provides spinner palette then insert spinner data in sqlite in android studio follow the source code how to insert spinner value in SQLite database in android.

In this example, we are adding a label on button click and displaying all the added labels on the spinner. As you have seen in the previous example, SQLiteOpenHelper class need to be extended for performing operations on the sqlite.

We have overridden the onCreate() and onUpgrade() method of SQLiteOpenHelper class in the DatabaseHandler class that provides additional methods to insert and display the labels or data.

 

 

This is spinner dropdown tutorial which has static data Android Spinner Dropdown Example. In this tutorial i am explaining how to populate spinner data from SQLite Database. An example of simple label management module is explained where you can insert new label into SQLite database and spinner will populated with the set labels from database.



follow the source code  how to insert spinner value in sqlite database in android.



1.MainActivity.java:

package com.akash.spinnersqlite;


import android.content.Context;

import android.os.Bundle;

import android.view.View;

import android.view.inputmethod.InputMethodManager;

import android.widget.AdapterView;

import android.widget.ArrayAdapter;

import android.widget.Button;

import android.widget.EditText;

import android.widget.Spinner;

import android.widget.Toast;


import androidx.appcompat.app.AppCompatActivity;


import java.util.List;


public class MainActivity extends AppCompatActivity implements AdapterView.OnItemSelectedListener {

    Spinner spinner;

    Button btnAdd;

    EditText inputLabel;

    @Override

    protected void onCreate(Bundle savedInstanceState) {

        super.onCreate(savedInstanceState);

        setContentView(R.layout.activity_main);

        spinner = findViewById(R.id.spinner);

        btnAdd =  findViewById(R.id.btn_add);

        inputLabel = findViewById(R.id.input_label);


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

                }


            }

        });

    }


    /**

     * Function to load the spinner data from SQLite database

     * */

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

    }


    @Override

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


    }


    @Override

    public void onNothingSelected(AdapterView<?> arg0) {

        // TODO Auto-generated method stub


    }

}



2.DatabaseHandler.java:

package com.akash.spinnersqlite;


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 = "spinnerExampledb";

    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;

    }

}


3.activity_main.xml:

<?xml version="1.0" encoding="utf-8"?>

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"

    xmlns:app="http://schemas.android.com/apk/res-auto"

    xmlns:tools="http://schemas.android.com/tools"

    android:layout_width="match_parent"

    android:layout_height="match_parent"

    tools:context=".MainActivity">



    <EditText

        android:id="@+id/input_label"

        android:layout_width="wrap_content"

        android:layout_height="wrap_content"

        android:layout_alignParentTop="true"

        android:layout_centerHorizontal="true"

        android:layout_marginTop="46dp"

        android:hint="Add item"

        android:ems="10" />


    <Button

        android:id="@+id/btn_add"

        android:layout_width="wrap_content"

        android:layout_height="wrap_content"

        android:layout_below="@+id/input_label"

        android:layout_centerHorizontal="true"

        android:layout_marginTop="67dp"

        android:text="Add item" />


    <Spinner

        android:id="@+id/spinner"

        android:layout_width="match_parent"

        android:layout_height="wrap_content"

        android:layout_alignParentLeft="true"

        android:layout_alignParentStart="true"

        android:layout_below="@+id/btn_add"

        android:layout_marginTop="70dp" />

</RelativeLayout>



4.AndroidManifest.xml:

<?xml version="1.0" encoding="utf-8"?>

<manifest xmlns:android="http://schemas.android.com/apk/res/android"

    package="com.akash.spinnersqlite">


    <application

        android:allowBackup="true"

        android:icon="@mipmap/ic_launcher"

        android:label="@string/app_name"

        android:roundIcon="@mipmap/ic_launcher_round"

        android:supportsRtl="true"

        android:theme="@style/AppTheme">

        <activity android:name=".MainActivity">

            <intent-filter>

                <action android:name="android.intent.action.MAIN" />


                <category android:name="android.intent.category.LAUNCHER" />

            </intent-filter>

        </activity>

    </application>


</manifest>



5.Output:

how-to-insert-spinner-value-in-sqlite-database-in-android




how-to-insert-spinner-value-in-sqlite-database-in-android





No comments:

Post a Comment