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.R.integer;
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 int query(String post)
{
db = helper.getReadableDatabase();
System.out.println("====根据职业查询jid的方法开始");
int jobid = 1001;
Cursor c = db.rawQuery("select * from job where post=?", new String[]{post});
// System.out.println("=========c.moveToFirst()="+c.moveToFirst()+" c.moveToNext()"+c.moveToNext()+" c.getCount() "+c.getCount());
if(c.moveToFirst())//判断游标是否为空
{
for(int i=0;i<c.getCount();i++)
{
c.move(i);//移动到指定记录
jobid = c.getInt(c.getColumnIndex("jid"));
System.out.println("====查询方法中的jobid"+jobid);
}
}
c.close();
db.close();
return jobid;
}
// 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;
private int jid=0;
@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)
{
String post = mStrings[position];
mview.setText(mStrings[position]);//把选择的职业显示在文本框内
jid = mDbManager.query(post);
System.out.println("====选择的职业编号是"+jid);
}
@Override
public void onNothingSelected(AdapterView<?> parent)
{
// TODO Auto-generated method stub
}
}
}