info@thistimebd.com

Sunday 28th of April 12:54:38am

spinner SQLite android app source code part three

MainActivity.java

===============

package com.sam.web.spinnersqlite;


import android.support.v7.app.AppCompatActivity;

import android.os.Bundle;


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;

import android.widget.Toast;

import android.os.Bundle;

import android.app.Activity;

import android.view.Menu;

import java.util.List;

import android.content.Context;

import android.view.View;

import android.view.inputmethod.InputMethodManager;

import android.widget.AdapterView;

import android.widget.AdapterView.OnItemSelectedListener;

import android.widget.ArrayAdapter;

import android.widget.Button;

import android.widget.EditText;

import android.widget.Spinner;

import android.widget.Toast;


public class MainActivity extends Activity implements OnItemSelectedListener{

    Spinner spinner;

    Button btnAdd;

    EditText inputLabel;


    @Override

    public void onCreate(Bundle savedInstanceState) {

        super.onCreate(savedInstanceState);

        setContentView(R.layout.activity_main);


        spinner = (Spinner) findViewById(R.id.spinner);

        btnAdd = (Button) findViewById(R.id.btn_add);

        inputLabel = (EditText) 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


    }

    @Override

    public boolean onCreateOptionsMenu(Menu menu) {

        // Inflate the menu; this adds items to the action bar if it is present.

        getMenuInflater().inflate(R.menu.activity_main, menu);

        return true;

    }


}


============================


package com.sam.web.spinnersqlite;


import android.content.Context;

import android.database.sqlite.SQLiteDatabase;

import android.database.sqlite.SQLiteOpenHelper;


/**

 * Created by maudud on 2/11/18.

 */

import java.util.ArrayList;

import java.util.List;


import android.content.ContentValues;

import android.content.Context;

import android.database.Cursor;



public class DatabaseHandler extends SQLiteOpenHelper {

    // Database Version

    private static final int DATABASE_VERSION = 1;


    // Database Name

    private static final String DATABASE_NAME = "spinnerExample";


    // Labels table name

    private static final String TABLE_LABELS = "labels";


    // Labels Table Columns names

    private static final String KEY_ID = "id";

    private static final String KEY_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_CATEGORIES_TABLE = "CREATE TABLE " + TABLE_LABELS + "("

                + KEY_ID + " INTEGER PRIMARY KEY," + KEY_NAME + " TEXT)";

        db.execSQL(CREATE_CATEGORIES_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_LABELS);


        // 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(KEY_NAME, label);


        // Inserting Row

        db.insert(TABLE_LABELS, null, values);

        db.close(); // Closing database connection

    }


    /**

     * Getting all labels

     * returns list of labels

     * */

    public List<String> getAllLabels(){

        List<String> labels = new ArrayList<String>();


        // Select All Query

        String selectQuery = "SELECT  * FROM " + TABLE_LABELS;


        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;

    }

}

=============================

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



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

    android:layout_width="fill_parent"

    android:layout_height="fill_parent"

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

    android:orientation="vertical"

    tools:context=".MainActivity">


        <!-- Label -->

        <TextView

            android:layout_width="fill_parent"

            android:layout_height="wrap_content"

            android:text="Add New Label"

            android:padding="8dip" />


        <!-- Input Text -->

        <EditText android:id="@+id/input_label"

            android:layout_width="fill_parent"

            android:layout_height="wrap_content"

            android:layout_marginLeft="8dip"

            android:layout_marginRight="8dip"/>


        <Spinner

            android:id="@+id/spinner"

            android:layout_width="fill_parent"

            android:layout_height="wrap_content"

            android:layout_alignParentLeft="true"

            android:layout_below="@+id/btn_add"

            android:layout_marginTop="23dp" />


        <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:text="Add Item" />


    </RelativeLayout>

==========================


<?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">

<TextView

    android:layout_width="match_parent"

    android:layout_height="wrap_content" />

</LinearLayout>

=======================


<resources>

    <string name="app_name">SpinnerSqlite</string>



    <string name="action_settings">Settings</string>

    <string name="lblAdd">Add New Mobile Name</string>

    <string name="btnAdd">Add Name</string>

    <string name="txtHint">HTC</string>

    <string name="lblDisp">Select Name</string>


</resources>