Android Sqlite Contoh (dengan Spinner)

Dalam contoh ini, kita menambahkan label pada klik tombol dan menampilkan semua label yang ditambahkan pada spinner. Seperti yang telah Anda lihat dalam contoh sebelumnya, kelas SQLiteOpenHelper perlu diperpanjang untuk melakukan operasi pada sqlite.

Kami telah mengganti metode onCreate() dan onUpgrade() kelas SQLiteOpenHelper di kelas DatabaseHandler yang menyediakan metode tambahan untuk memasukkan dan menampilkan label atau data.

Contoh Android Sqlite Spinner

Mari kita lihat kode sederhana untuk menambahkan dan menampilkan konten string pada spinner menggunakan database sqlite.

* Main Activity

File : 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="example.android.com.sqlitespinner.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>  


* Activity class

File : MainActivity.java

package example.android.com.sqlitespinner;  
 
import android.content.Context;  
import android.support.v7.app.AppCompatActivity;  
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 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  
 
    }  
}  


* DatabaseHandler class

File : DatabaseHandler.java

package example.android.com.sqlitespinner;  
 
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 = "spinnerExample";  
    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;  
    }  
}  


Output :

Android Sqlite Contoh (dengan Spinner)


Berlangganan update artikel terbaru via email:

0 Response to "Android Sqlite Contoh (dengan Spinner)"

Posting Komentar

Iklan Atas Artikel

Iklan Bawah Artikel