android sqlite和spinner的用法示例

【android sqlite和spinner的用法示例】在此示例中,我们在单击按钮时添加了标签,并在微调器上显示了所有添加的标签。如上例所示,需要扩展SQLiteOpenHelper类以在sqlite上执行操作。
我们在DatabaseHandler类中重写了SQLiteOpenHelper类的onCreate()和onUpgrade()方法,该方法提供了其他方法来插入和显示标签或数据。
Android Sqlite Spinner示例
让我们看一下使用sqlite数据库在Spinner上添加和显示字符串内容的简单代码。
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.srcmini.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>

活动类
package example.srcmini.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类
package example.srcmini.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; } }

输出:
android sqlite和spinner的用法示例

文章图片
android sqlite和spinner的用法示例

文章图片
android sqlite和spinner的用法示例

文章图片

    推荐阅读