In the below example code I have created and example, to add item in Spinner By using SQLite Database. here In activity_main.xml layout I have added EditText, Button and Spinner. Now See programming area, here I have Created a DataBaseHelper Class for inserting items into Spinner and to store Items in database. In MainActivity I have created SpinnerData() method to load items in Spinner from SQLite database.
When you can add something in EditText and press Add Button then Item will be inserted into spinner easily .
See below example code it clearify you to "Add Items By using SQLite DataBase".
Step(1)activity_main.xml layout-
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical" >
<EditText
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="10dp"
android:id="@+id/edit_text"
android:hint="Add Item.."
android:maxLength="10"/>
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_margin="5dp"
android:id="@+id/btn_add"
android:textStyle="bold"
android:text="Add"
android:background="@color/btn_backgraund"/>
<Spinner
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:id="@+id/spinner"
android:layout_margin="10dp">
</Spinner>
</LinearLayout>
Step(2)-Created a New DataBaseHelper class-
public class DataBaseHelper extends SQLiteOpenHelper {
private static final int DATABASE_VERSION=1;
private static final String DATABASE_NAME="Add_Items";
private static final String TABLE_LABELS="labels";
private static final String KEY_ID="id";
private static final String KEY_NAME="name";
public DataBaseHelper(Context context) {
super(context, DATABASE_NAME, null, DATABASE_VERSION);
}
public DataBaseHelper(Context context, String name, SQLiteDatabase.CursorFactory factory, int version) {
super(context, name, factory, version);
}
@Override
public void onCreate(SQLiteDatabase db) {
String CREATE_CATEGORIES_TABLE = "CREATE TABLE " + TABLE_LABELS + "("
+ KEY_ID + " INTEGER PRIMARY KEY," + KEY_NAME + " TEXT)";
db.execSQL(CREATE_CATEGORIES_TABLE);
}
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
db.execSQL("DROP TABLE IF EXISTS"+TABLE_LABELS);
onCreate(db);
}
public void insertLabel(String label){
SQLiteDatabase db = this.getWritableDatabase();
ContentValues values= new ContentValues();
values.put(KEY_NAME,label);
db.insert(TABLE_LABELS, null, values);
db.close();
}
public List<String>getAllLabels(){
List<String>labels= new ArrayList<>();
String selectQuery = "SELECT * FROM " + TABLE_LABELS;
SQLiteDatabase db=this.getReadableDatabase();
Cursor cursor=db.rawQuery(selectQuery,null);
if (cursor.moveToFirst()){
do{
labels.add(cursor.getString(1));
}while (cursor.moveToNext());
}
cursor.close();
db.close();
return labels;
}
}
Step(3)-MainActivity-
public class MainActivity extends AppCompatActivity implements AdapterView.OnItemSelectedListener {
Spinner spinner;
Button btnAdd;
EditText edit;
@Override
protected 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);
edit=(EditText)findViewById(R.id.edit_text);
spinner.setOnItemSelectedListener(this);
SpinnerData();
btnAdd.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View arg0) {
String label = edit.getText().toString();
if(label.trim().length()>0){
DataBaseHelper db = new DataBaseHelper(getApplicationContext());
db.insertLabel(label);
edit.setText("");
InputMethodManager inputMethodManager =(InputMethodManager)getSystemService(Context.INPUT_METHOD_SERVICE);
inputMethodManager.hideSoftInputFromWindow(edit.getWindowToken(),0);
SpinnerData();
}else {
Toast.makeText(getApplicationContext(),"Please enter Text",Toast.LENGTH_SHORT).show();
}
}
});
}
private void SpinnerData(){
DataBaseHelper db= new DataBaseHelper(getApplicationContext());
List<String> labels= db.getAllLabels();
ArrayAdapter<String> dataAdapter = new ArrayAdapter<String>(this,
android.R.layout.simple_spinner_item, labels);
spinner.setAdapter(dataAdapter);
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.menu_main, menu);
return true;
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
// Handle action bar item clicks here. The action bar will
// automatically handle clicks on the Home/Up button, so long
// as you specify a parent activity in AndroidManifest.xml.
int id = item.getItemId();
//noinspection SimplifiableIfStatement
if (id == R.id.action_settings) {
return true;
}
return super.onOptionsItemSelected(item);
}
@Override
public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {
String label=parent.getItemAtPosition(position).toString();
Toast.makeText(parent.getContext(),"You selected:"+label,Toast.LENGTH_LONG).show();
}
@Override
public void onNothingSelected(AdapterView<?> parent) {
}
}
0 Comment(s)