activity_main.xml
<?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" > <TextView android:id="@+id/spinnerText" android:layout_width="fill_parent" android:layout_height="wrap_content"></TextView> <Spinner android:id="@+id/Spinner01" android:layout_width="fill_parent" android:layout_height="wrap_content"></Spinner> </LinearLayout>
DBHelper.java
package com.example.spinnerwitharray; import android.content.Context; import android.database.sqlite.SQLiteDatabase; import android.database.sqlite.SQLiteOpenHelper; public class DBHelper extends SQLiteOpenHelper { private static final String DATABASE_NAME = "job.db"; private static final int DATABASE_VERSION = 1; public DBHelper(Context context) { //CursorFactory设置为null,使用默认值 super(context, DATABASE_NAME, null, DATABASE_VERSION); } //数据库第一次被创建时onCreate会被调用 @Override public void onCreate(SQLiteDatabase db) { db.execSQL("create table if not exists job (_id integer primary key autoincrement,jid integer,post varchar);"); //为职业信息表插入数据 db.execSQL("insert into job values (null,1001,'体力劳动者');"); db.execSQL("insert into job values (null,1002,'脑力劳动者');"); db.execSQL("insert into job values (null,1003,'既是体力劳动者也是脑力劳动者');"); db.execSQL("insert into job values (null,1004,'既不是体力劳动者也不是脑力劳动者');"); } //如果DATABASE_VERSION值被改为2,系统发现现有数据库版本不同,即会调用onUpgrade @Override public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) { db.execSQL("ALTER TABLE person ADD COLUMN other STRING"); } }
DBManager.java
package com.example.spinnerwitharray; import java.util.ArrayList; import java.util.List; import android.content.Context; import android.database.Cursor; import android.database.sqlite.SQLiteDatabase; public class DBManager { private DBHelper helper; private SQLiteDatabase db; public DBManager(Context context){ helper = new DBHelper(context); } //create table if not exists job (_id integer primary key autoincrement,jid integer,post varchar); public List<String[]> query(){ System.out.println("=====查询方法开始"); db = helper.getReadableDatabase(); ArrayList<String[]> strs = new ArrayList<String[]>(); Cursor cursor = db.rawQuery("select * from job", null); while (cursor.moveToNext()) { String[] str = new String[]{ // cursor.getInt(cursor.getColumnIndex("jid")), cursor.getString(cursor.getColumnIndex("post")) }; strs.add(str); } cursor.close(); db.close(); System.out.println("=====cursor是否为空"+cursor); System.out.println("=====方法结束"); return strs; } // public List<Object[]> query(){ // ArrayList<Object[]> objs = new ArrayList<Object[]>(); // Cursor c = queryTheCursor(); // while (c.moveToNext()){ // Object[] obj = new Object[]{c.getString(c.getColumnIndex("name")), // c.getInt(c.getColumnIndex("year")), // c.getInt(c.getColumnIndex("month")), // c.getInt(c.getColumnIndex("day")), // c.getString(c.getColumnIndex("post")), // c.getInt(c.getColumnIndex("sex"))}; // objs.add(obj); // } // c.close(); // return objs; // } // // /** // * query all persons, return cursor // * // * @return Cursor // */ public Cursor queryTheCursor() { //Cursor c = db.rawQuery("SELECT * FROM person", null); Cursor c = db.rawQuery("select * from job",null); return c; } }
MainActivity.java
package com.example.spinnerwitharray; import java.util.List; import android.os.Bundle; import android.R.anim; import android.app.Activity; import android.view.Menu; import android.view.View; import android.widget.AdapterView; import android.widget.AdapterView.OnItemSelectedListener; import android.widget.ArrayAdapter; import android.widget.Spinner; import android.widget.TextView; public class MainActivity extends Activity { // private String[] mStrings = { "a", "b", "c", "d" }; private String[] mStrings; int jobQuantity; private TextView mview; private Spinner mSpinner; private ArrayAdapter<String> adapter; private DBManager mDbManager; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); mDbManager = new DBManager(this); mview = (TextView) findViewById(R.id.spinnerText); mSpinner = (Spinner) findViewById(R.id.Spinner01); List<String[]> strs = mDbManager.query(); jobQuantity = strs.size(); mStrings = new String[jobQuantity]; for (int i = 0; i < jobQuantity; i++) { String[] resultStr = strs.get(i); for (int j = 0; j < resultStr.length; j++) { System.out.println("=====resultStr数组内容"+resultStr[j]+"=====集合内容"+strs.get(i)); System.out.println("====resultStr[0]"+resultStr[0]); } if (mStrings[i] == null) { System.out.println("====发现mStrings[i]是空的"); } mStrings[i] = resultStr[0]; } for (int i = 0; i <mStrings.length; i++) { System.out.println("=============数组内容是"+mStrings[i]); } adapter = new ArrayAdapter<String>(this, android.R.layout.simple_spinner_item, mStrings); adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); mSpinner.setAdapter(adapter); mSpinner.setOnItemSelectedListener(new MyOnItemSelectedListener()); mSpinner.setVisibility(View.VISIBLE); } class MyOnItemSelectedListener implements OnItemSelectedListener { @Override public void onItemSelected(AdapterView<?> parent, View view, int position, long id) { // TODO Auto-generated method stub mview.setText(mStrings[position]); } @Override public void onNothingSelected(AdapterView<?> parent) { // TODO Auto-generated method stub } } }