spinner从数据库读取(无点击响应)

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

		}

	}

}


你可能感兴趣的:(spinner从数据库读取(无点击响应))