Android Sqlite 示例(帶下拉列表)含代碼

    Android Sqlite 示例(帶下拉列表)

    在這個例子中,我們在按鈕點擊時添加一個標簽,并在下拉列表上顯示所有添加的標簽。愛掏網 - it200.com正如您在前面的例子中看到的一樣, 需要擴展 SQLiteOpenHelper 類才能在sqlite上執行操作。愛掏網 - it200.com

    我們在 DatabaseHandler 類中覆蓋了 SQLiteOpenHelper 類的 onCreate() 和 onUpgrade() 方法,該類提供了其他方法來插入和顯示標簽或數據。愛掏網 - it200.com

    Android Sqlite 下拉列表 示例

    讓我們看一下使用 sqlite 數據庫添加和顯示字符串內容的簡單代碼。愛掏網 - it200.com

    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.javatpoint.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類

    package example.javatpoint.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 labels = db.getAllLabels();
    
            // Creating adapter for spinner
            ArrayAdapter dataAdapter = new ArrayAdapter(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
    
        }
    }
    

    數據庫處理器類

    package example.javatpoint.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 getAllLabels(){
            List list = new ArrayList();
    
            // 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示例

    輸出:

    聲明:所有內容來自互聯網搜索結果,不保證100%準確性,僅供參考。如若本站內容侵犯了原著者的合法權益,可聯系我們進行處理。
    發表評論
    更多 網友評論0 條評論)
    暫無評論

    返回頂部

    主站蜘蛛池模板: 国产成人精品一区二区三区无码| 精品国产伦一区二区三区在线观看 | 日韩人妻一区二区三区免费 | 国产精品夜色一区二区三区| 区三区激情福利综合中文字幕在线一区亚洲视频1 | 亚欧色一区W666天堂| 青娱乐国产官网极品一区| 国产精品揄拍一区二区久久| 久久综合九九亚洲一区| 国精产品一区一区三区免费视频 | 伊人久久大香线蕉av一区| 午夜无码一区二区三区在线观看 | 亚洲AV成人精品日韩一区18p| 亚洲欧美成人一区二区三区 | 亚洲国产一区视频| 日本精品一区二区三区在线视频一 | 日本亚洲成高清一区二区三区| 国产午夜精品一区理论片飘花| 国产福利电影一区二区三区,日韩伦理电影在线福 | 精品亚洲AV无码一区二区三区| 性色av一区二区三区夜夜嗨| 亚洲日韩国产精品第一页一区| 久久精品一区二区三区中文字幕| 亚洲一区无码精品色| 91国在线啪精品一区| 国产精品一区二区久久不卡| 亚洲无线码在线一区观看| 日本高清成本人视频一区| 亲子乱AV视频一区二区| 久久精品动漫一区二区三区| 青青青国产精品一区二区| 国产福利一区二区三区在线观看| 国产乱码精品一区二区三区中 | 中文字幕一区二区视频| 中文字幕无码一区二区免费| 亚洲av无码一区二区三区乱子伦 | 精品国产日韩亚洲一区| a级午夜毛片免费一区二区| 亚欧成人中文字幕一区| 色综合视频一区中文字幕| 大香伊蕉日本一区二区|