Android Spinner 应用教程:数据库数据绑定 (android spinner 数据库)

Android应用程序已经成为了现代人生活中不可或缺的一部分,而应用程序中的Spinner组件也同样成为了不可或缺的一部分。Spinner组件是一种下拉列表框,用于提供多个选项以供用户选择。在Android应用程序开发中,直接在代码中添加数据源是困难的,因此使用数据库来存储这些选项的数据是一种更好的方法。这篇文章将介绍如何在Android程序中使用数据库数据绑定Spinner组件。

一、创建数据库

我们需要创建一个包含Spinner数据选项的数据库。在Android Studio中,使用SQLiteOpenHelper来创建数据库和数据表是最常见的方法。以下是创建数据库的步骤:

1.在Android Studio中打开项目,并打开app/build.gradle文件

2.添加以下代码:

“`

dependencies {

implementation ‘com.android.support:support-v4:24.2.0’

implementation ‘com.android.support:appcompat-v7:24.2.0’

implementation ‘com.android.support:design:24.2.0’

implementation ‘com.android.support:cardview-v7:24.2.0’

implementation ‘com.android.support:recyclerview-v7:24.2.0’

implementation ‘com.android.support:gridlayout-v7:24.2.0’

implementation ‘com.android.support:support-annotations:24.2.0’

implementation ‘com.android.support:multidex:1.0.1’

implementation ‘com.android.support:percent:24.2.0’

implementation ‘com.android.support.constrnt:constrnt-layout:1.0.2’

implementation ‘com.android.support:support-vector-drawable:24.2.0’

implementation ‘com.android.support:customtabs:24.2.0’

implementation ‘com.android.support:support-v13:24.2.0’

implementation ‘com.android.support:support-fragment:24.2.0’

implementation ‘com.android.support:support-core-utils:24.2.0’

implementation ‘com.android.support:support-core-ui:24.2.0’

implementation ‘com.google.android.gms:play-services-ytics:15.0.2’

implementation ‘com.squareup.okhttp3:okhttp:3.9.1’

implementation ‘com.squareup.okhttp3:logging-interceptor:3.9.1’

implementation ‘com.jakewharton:butterknife:8.8.1’

annotationProcessor ‘com.jakewharton:butterknife-compiler:8.8.1’

implementation ‘com.android.support:preference-v7:24.2.0’

implementation ‘com.squareup.retrofit2:retrofit:2.3.0’

implementation ‘com.squareup.retrofit2:converter-gson:2.3.0’

implementation ‘com.squareup.retrofit2:adapter-rxjava:2.3.0’

implementation ‘com.squareup.retrofit2:converter-scalars:2.3.0’

implementation ‘com.github.bumptech.glide:glide:3.7.0’

implementation ‘com.google.code.gson:gson:2.8.0’

implementation files(‘libs/gurobi.jar’)

implementation ‘com.google.android.gms:play-services-location:15.0.1’

implementation ‘com.google.android.gms:play-services-maps:15.0.1’

implementation ‘com.google.maps.android:android-maps-utils:0.5’

implementation ‘com.github.amlcurran.showcaseview:library:5.4.3’

implementation ‘me.dm7.barcodescanner:zbar:1.8.4’

implementation ‘com.leocardz:link-preview:2.2.1’

implementation ‘com.mikepenz:materialdrawer:6.0.6’

implementation ‘org.greenrobot:eventbus:3.0.0’

implementation ‘com.google.firebase:firebase-core:15.0.2’

implementation ‘com.google.firebase:firebase-ytics:15.0.2’

implementation ‘com.crashlytics.sdk.android:crashlytics:2.9.1’

implementation ‘com.google.android:flexbox:0.3.2’

implementation ‘com.github.bumptech.glide:glide:4.0.0’

annotationProcessor ‘com.github.bumptech.glide:compiler:4.0.0’

implementation ‘com.squareup.sqlbrite:sqlbrite:1.1.0’

implementation ‘com.squareup.leakcanary:leakcanary-android:1.5.4’

debugImplementation ‘com.squareup.leakcanary:leakcanary-android-no-op:1.5.4’

releaseImplementation ‘com.squareup.leakcanary:leakcanary-android-no-op:1.5.4’

implementation ‘com.facebook.stetho:stetho:1.5.0’

implementation ‘com.facebook.stetho:stetho-urlconnection:1.5.0’

implementation ‘com.facebook.stetho:stetho-okhttp3:1.5.0’

}

“`

3.在app目录下创建一个包namedb

4.编写以下SQLiteOpenHelper的子类,实现数据库的创建

“`

public class DatabaseHelper extends SQLiteOpenHelper {

private static final String DATABASE_NAME = “spinnerdb.db”;

private static final int DATABASE_VERSION = 1;

private static final StringBuilder = new StringBuilder();

public DatabaseHelper(Context context) {

super(context, DATABASE_NAME, null, DATABASE_VERSION);

}

@Override

public void onCreate(SQLiteDatabase db) {

.setLength(0);

.append(“CREATE TABLE “).append(TABLE_NAME).append(“(“)

.append(_ID).append(” INTEGER PRIMARY KEY, “)

.append(COLUMN_NAME).append(” TEXT NOT NULL);”);

db.execSQL(.toString());

ContentValues values = new ContentValues();

values.put(COLUMN_NAME, “Apple”);

db.insert(TABLE_NAME, null, values);

values.clear();

values.put(COLUMN_NAME, “Banana”);

db.insert(TABLE_NAME, null, values);

values.clear();

values.put(COLUMN_NAME, “Cherry”);

db.insert(TABLE_NAME, null, values);

}

@Override

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

.setLength(0);

.append(“DROP TABLE IF EXISTS “).append(TABLE_NAME);

db.execSQL(.toString());

onCreate(db);

}

}

“`

5.完成上面步骤之后,即可在Android应用程序中使用SQLiteOpenHelper来创建数据库和表

二、在Android应用程序中使用Spinner组件

接下来,我们需要使用Spinner组件来绑定数据库中存储的数据。以下是步骤:

1.打开activity_mn.xml文件并添加Spinner元素:

“`

android:id=”@+id/spinner”

android:layout_width=”match_parent”

android:layout_height=”wrap_content”

android:layout_marginTop=”10dp”/>

“`

2.打开MnActivity.java文件并添加以下代码来获取Spinner:

“`

Spinner spinner = (Spinner) findViewById(R.id.spinner);

“`

3.在MnActivity.java文件中添加以下代码来获取一个包含所有数据库数据的cursor对象:

“`

Cursor cursor = getContentResolver().query(DataContract.CONTENT_URI, null,

null, null, null);

“`

4.使用SimpleCursorAdapter来把数据库的数据绑定到Spinner上:

“`

SimpleCursorAdapter adapter = new SimpleCursorAdapter(this,

android.R.layout.simple_spinner_item,

cursor, new String[]{DataContract.NAME},

new int[]{android.R.id.text1}, 0);

adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);

spinner.setAdapter(adapter);

“`

5.在Activity销毁时,关闭cursor对象:

“`

@Override

protected void onDestroy() {

super.onDestroy();

cursor.close();

}

“`

6.完成上面步骤之后,就能在应用程序中运行Spinner组件以及绑定数据库的数据了。

我们已经成功实现了在Android应用程序中使用数据库数据绑定Spinner组件。这将使应用程序的开发更加简单,并允许您轻松地在应用程序中将数据从不同的来源(如CSV、Excel等)中加载到Spinner中。使用Spinner组件可以将多个操作选择放在一个视图中,使用户体验得到极大的提高。


数据运维技术 » Android Spinner 应用教程:数据库数据绑定 (android spinner 数据库)