info@thistimebd.com

Tuesday 3rd of December 11:41:22pm

spinner SQLite android app source code

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;


public class MainActivity extends Activity {



    Spinner sp;

    EditText nametxt,posTxt;

    Button saveBtn,retrievebtn;


    ArrayList<String> names=new ArrayList<String>();

    ArrayAdapter<String> adapter;


    @Override

    protected void onCreate(Bundle savedInstanceState) {

        super.onCreate(savedInstanceState);

        setContentView(R.layout.activity_main);


        sp=(Spinner) findViewById(R.id.spinner1);

        nametxt=(EditText) findViewById(R.id.nameTxt);

        posTxt=(EditText) findViewById(R.id.posTxt);


        saveBtn=(Button) findViewById(R.id.saveBtn);

        retrievebtn=(Button) findViewById(R.id.retrievebtn);


        //ADAPTER

        adapter=new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1,names);


        final DBAdapter db=new DBAdapter(this);


        //EVENTS

        saveBtn.setOnClickListener(new OnClickListener() {


            @Override

            public void onClick(View v) {

                // TODO Auto-generated method stub


                //OPEN

                db.openDB();


                long result=db.add(nametxt.getText().toString(), posTxt.getText().toString());


                if( result != 0)

                {

                    nametxt.setText("");

                    posTxt.setText("");


                }else

                {

                    Toast.makeText(getApplicationContext(), "Failure", Toast.LENGTH_SHORT).show();

                }



                //CLOSE

                db.close();

            }

        });


        //RETERIEVE

        retrievebtn.setOnClickListener(new OnClickListener() {


            @Override

            public void onClick(View arg0) {

                // TODO Auto-generated method stub


                names.clear();


                //OPEN

                db.openDB();


                //RETRIEVE

                Cursor c=db.getAllValues();


                while(c.moveToNext())

                {

                    String name=c.getString(1);

                    names.add(name);

                }


                //CLOSE

                db.close();


                //SET IT TO SPINNER

                sp.setAdapter(adapter);

            }

        });


    }

}

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

DBAdapter.java

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

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


public class DBAdapter {


    //COLUMNS

    static final String ROWID="id";

    static final String NAME="name";

    static final String POSITION = "position";


    static final String TAG = "DBSpinner";


    //DB PROPERTIES

    static final String DBNAME = "s_DB";

    static final String TBNAME = "s_TB";

    static final int DBVERSION = 1;


    //CREATE TB

    static final String CREATE_TB="CREATE TABLE s_TB(id INTEGER PRIMARY KEY AUTOINCREMENT,"

            + "name TEXT NOT NULL,position TEXT NOT NULL);";



    final Context c;

    SQLiteDatabase db;

    DBHelper helper;


    public DBAdapter(Context ctx)

    {

        this.c=ctx;

        helper=new DBHelper(c);

    }


    // INNER HELPER DB CLASS

    private static class DBHelper extends SQLiteOpenHelper

    {


        public DBHelper(Context context) {

            super(context, DBNAME, null, DBVERSION);

            // TODO Auto-generated constructor stub

        }


        @Override

        public void onCreate(SQLiteDatabase db) {

            // TODO Auto-generated method stub


            try

            {

                db.execSQL(CREATE_TB);

            }catch (SQLException e) {

                e.printStackTrace();

            }


        }


        @Override

        public void onUpgrade(SQLiteDatabase db, int oldeVersion, int newVersion) {

            // TODO Auto-generated method stub


            Log.w(TAG, "Upgrading DB");


            db.execSQL("DROP TABLE IF EXISTS s_TB");


            onCreate(db);

        }


    }


    // OPEN THE DB

    public DBAdapter openDB()

    {

        try

        {

            db=helper.getWritableDatabase();


        }catch (SQLException e) {

            e.printStackTrace();

        }


        return this;

    }


    //CLOSE THE DB

    public void close()

    {

        helper.close();

    }


    //INSERT INTO TABLE

    public long add(String name,String pos)

    {

        try

        {


            ContentValues cv=new ContentValues();

            cv.put(NAME, name);

            cv.put(POSITION, pos);


            return db.insert(TBNAME, ROWID, cv);


        }catch (SQLException e) {

            e.printStackTrace();

        }


        return 0;

    }



    //GET ALL VALUES

    public Cursor getAllValues()

    {

        String[] columns={ROWID,NAME,POSITION};


        return db.query(TBNAME, columns, null, null, null, null, null);

    }

}

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

activity_main.xml

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

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

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

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

    android:layout_width="match_parent"

    android:layout_height="match_parent"


    tools:context=".MainActivity" >


    <Button

        android:id="@+id/saveBtn"

        android:layout_width="wrap_content"

        android:layout_height="wrap_content"

        android:layout_below="@+id/posTxt"

        android:layout_marginTop="34dp"

        android:text="Save" />


    <EditText

        android:id="@+id/nameTxt"

        android:layout_width="wrap_content"

        android:layout_height="wrap_content"

        android:layout_alignParentTop="true"

        android:layout_marginTop="20dp"

        android:layout_toRightOf="@+id/saveBtn"

        android:ems="10" />


    <EditText

        android:id="@+id/posTxt"

        android:layout_width="wrap_content"

        android:layout_height="wrap_content"

        android:layout_alignLeft="@+id/nameTxt"

        android:layout_below="@+id/nameTxt"

        android:ems="10" >


        <requestFocus

            android:layout_width="wrap_content"

            android:layout_height="wrap_content" />


    </EditText>


    <Button

        android:id="@+id/retrievebtn"

        android:layout_width="wrap_content"

        android:layout_height="wrap_content"

        android:layout_alignBaseline="@+id/saveBtn"

        android:layout_alignBottom="@+id/saveBtn"

        android:layout_alignRight="@+id/posTxt"

        android:text="Retrieve" />


    <TextView

        android:id="@+id/textView1"

        android:layout_width="wrap_content"

        android:layout_height="wrap_content"

        android:layout_above="@+id/posTxt"

        android:layout_alignParentLeft="true"

        android:text="Name"

        android:textAppearance="?android:attr/textAppearanceSmall" />


    <TextView

        android:id="@+id/textView2"

        android:layout_width="wrap_content"

        android:layout_height="wrap_content"

        android:layout_alignBottom="@+id/posTxt"

        android:layout_alignParentLeft="true"

        android:text="Position"

        android:textAppearance="?android:attr/textAppearanceSmall" />


    <LinearLayout

        android:id="@+id/linearLayout1"

        android:layout_width="match_parent"

        android:layout_height="wrap_content"

        android:layout_below="@+id/saveBtn"

        android:layout_marginRight="16dp"

        android:orientation="vertical" >



    </LinearLayout>


    <TextView

        android:id="@+id/textView3"

        android:layout_width="wrap_content"

        android:layout_height="wrap_content"

        android:layout_alignRight="@+id/retrievebtn"

        android:layout_below="@+id/saveBtn"

        android:layout_marginTop="36dp"

        android:text="DATABASE VALUES SPINNER :"

        android:textAppearance="?android:attr/textAppearanceLarge" />


    <Spinner

        android:id="@+id/spinner1"

        android:layout_width="wrap_content"

        android:layout_height="wrap_content"

        android:layout_alignLeft="@+id/textView3"

        android:layout_below="@+id/textView3"

        android:layout_marginTop="30dp" />


</RelativeLayout>

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

spinner_layout.xml

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


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