文档章节

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

mutouzhang
 mutouzhang
发布于 2014/03/28 11:32
字数 638
阅读 348
收藏 0

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

		}

	}

}


© 著作权归作者所有

共有 人打赏支持
mutouzhang
粉丝 6
博文 190
码字总数 91235
作品 0
洛阳
程序员
私信 提问
安卓spinner控件首次点击无响应

spinner控件设置监听position 点击下标位置1时 没有反应点击下边位置2时有响应,当在点击下边位置1时这回也有响应了,就是首次点击下标位置1是无响应。这是什么原因?

肖恩克
2017/03/18
52
0
Android 用户界面---用AdapterView绑定数据(Binding to Data with AdapterView)

AdapterView是ViewGroup的一个子类,它的子View是由绑定某些类型数据的Adapter类决定的。AdapterView有助于在需要的时候,在布局中显示被存储的数据(相对与资源字符串或可描画资源)。 Gall...

长平狐
2012/10/16
216
0
Sipnner点击相同Item不响应的解决方法

今天用到Spinner,两次点击同一个item的时候,第二次会不响应OnItemSelect事件。 终于自己摸索出解决方法了: @Overridepublic void onItemSelected(AdapterView<?> arg0, View arg1,int arg...

拉风的道长
2013/03/20
0
0
Android如何在页面跳转前保存数据而当页面跳回时自动将原保存的数据自动填充到页面上?

在项目开发中,开发了一个页面,其中包括TextView、EditText、Spinner,以及一个选择并上传照片的Button,在程序运行过程中,在该页面上将EditText、Spinner对应的信息填写或者选择完毕后,点...

wjdroid
2017/08/25
131
6
Android-spinner详解

Spinner控件也是一种列表类型的控件,它的继承关系如下: java.lang.Object ↳ android.view.View ↳ android.view.ViewGroup ↳ android.widget.AdapterView ↳ android.widget.AbsSpinner ......

鉴客
2011/12/01
7.3K
0

没有更多内容

加载失败,请刷新页面

加载更多

C++ vector和list的区别

1.vector数据结构 vector和数组类似,拥有一段连续的内存空间,并且起始地址不变。 因此能高效的进行随机存取,时间复杂度为o(1); 但因为内存空间是连续的,所以在进行插入和删除操作时,会造...

shzwork
29分钟前
1
0
Spring之invokeBeanFactoryPostProcessors详解

Spring的refresh的invokeBeanFactoryPostProcessors,就是调用所有注册的、原始的BeanFactoryPostProcessor。 相关源码 public static void invokeBeanFactoryPostProcessors(Configu......

cregu
昨天
1
0
ibmcom/db2express-c_docker官方使用文档

(DEPRECIATED) Please check DB2 Developer-C Edition for the replacement. What is IBM DB2 Express-C ? ``IBM DB2 Express-C``` is the no-charge community edition of DB2 server, a si......

BG2KNT
昨天
0
0
Ubuntu 18.04.2 LTS nvidia-docker2 : 依赖: docker-ce (= 5:18.09.0~3-0~ubuntu-bionic)

平台:Ubuntu 18.04.2 LTS nvidia-docker2 版本:2.0.3 错误描述:在安装nvidia-docker2的时候报dpkg依赖错误 nvidia-docker2 : 依赖: docker-ce (= 5:18.09.0~3-0~ubuntu-bionic) 先看一下依......

Pulsar-V
昨天
3
0
学习笔记1-goland结构体(struct)

写在前面:若有侵权,请发邮件by.su@qq.com告知。 转载者告知:如果本文被转载,但凡涉及到侵权相关事宜,转载者需负责。请知悉! 本文永久更新地址:https://my.oschina.net/bysu/blog/3036...

不最醉不龟归
昨天
4
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部