android sqlite绑定城市三级联(动态) 包含mysql数据源的sql语句
2014-02-10 10:40
501 查看
package com.icq.spinnercity; import java.util.ArrayList; import java.util.List; import android.app.Activity; import android.database.Cursor; import android.database.sqlite.SQLiteDatabase; import android.os.Bundle; import android.view.View; import android.widget.AdapterView; import android.widget.AdapterView.OnItemSelectedListener; import android.widget.Spinner; import android.widget.TextView; public class MainActivity extends Activity { private DBManager dbm; private SQLiteDatabase db; private Spinner province_spinner = null; private Spinner city_spinner = null; private Spinner country_spinner = null; private String provinceId = null; private String cityId = null; private String districtId = null; private TextView tv_showselect; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); province_spinner = (Spinner) findViewById(R.id.province_spinner); city_spinner = (Spinner) findViewById(R.id.city_spinner); country_spinner = (Spinner) findViewById(R.id.country_spinner); tv_showselect = (TextView) findViewById(R.id.tv_showselect); province_spinner.setPrompt("请选择省份"); city_spinner.setPrompt("请选择城市"); country_spinner.setPrompt("请选择地区"); initProvince(); } public void initProvince() { dbm = new DBManager(this); dbm.openDatabase(); db = dbm.getDatabase(); List<SpinnerItem> list = new ArrayList<SpinnerItem>(); try { String sql = "select * from fs_province"; Cursor cursor = db.rawQuery(sql, null); cursor.moveToFirst(); for (int i = 0; i < cursor.getCount(); i++) { String code = cursor.getString(cursor .getColumnIndex("ProvinceID")); String name = cursor.getString(cursor .getColumnIndex("ProvinceName")); SpinnerItem myListItem = new SpinnerItem(); myListItem.setName(name); myListItem.setPcode(code); list.add(myListItem); cursor.moveToNext(); } } catch (Exception e) { e.printStackTrace(); } dbm.closeDatabase(); db.close(); SpinnerAdapter myAdapter = new SpinnerAdapter(this, list); province_spinner.setAdapter(myAdapter); province_spinner .setOnItemSelectedListener(new ProvinceOnSelectedListener()); } public void initCity(String pcode) { dbm = new DBManager(this); dbm.openDatabase(); db = dbm.getDatabase(); List<SpinnerItem> list = new ArrayList<SpinnerItem>(); try { String sql = "select * from fs_city where ProvinceID='" + pcode + "'"; Cursor cursor = db.rawQuery(sql, null); cursor.moveToFirst(); for (int i = 0; i < cursor.getCount(); i++) { String code = cursor.getString(cursor.getColumnIndex("CityID")); String name = cursor.getString(cursor .getColumnIndex("CityName")); SpinnerItem myListItem = new SpinnerItem(); myListItem.setName(name); myListItem.setPcode(code); list.add(myListItem); cursor.moveToNext(); } } catch (Exception e) { e.printStackTrace(); } dbm.closeDatabase(); db.close(); SpinnerAdapter myAdapter = new SpinnerAdapter(this, list); city_spinner.setAdapter(myAdapter); city_spinner .setOnItemSelectedListener(new CityOnSelectedListener()); } public void initCountry(String pcode) { dbm = new DBManager(this); dbm.openDatabase(); db = dbm.getDatabase(); List<SpinnerItem> list = new ArrayList<SpinnerItem>(); try { String sql = "select * from fs_district where CityID='" + pcode + "'"; Cursor cursor = db.rawQuery(sql, null); cursor.moveToFirst(); for (int i = 0; i < cursor.getCount(); i++) { String code = cursor.getString(cursor .getColumnIndex("DistrictID")); String name = cursor.getString(cursor .getColumnIndex("DistrictName")); SpinnerItem myListItem = new SpinnerItem(); myListItem.setName(name); myListItem.setPcode(code); list.add(myListItem); cursor.moveToNext(); } } catch (Exception e) { e.printStackTrace(); } dbm.closeDatabase(); db.close(); SpinnerAdapter myAdapter = new SpinnerAdapter(this, list); country_spinner.setAdapter(myAdapter); country_spinner .setOnItemSelectedListener(new DistrictOnSelectedListener()); } class ProvinceOnSelectedListener implements OnItemSelectedListener { public void onItemSelected(AdapterView<?> adapterView, View view, int position, long id) { provinceId = ((SpinnerItem) adapterView.getItemAtPosition(position)) .getPcode(); String pcode = ((SpinnerItem) adapterView .getItemAtPosition(position)).getPcode(); initCity(pcode); initCountry(pcode); } public void onNothingSelected(AdapterView<?> adapterView) { } } class CityOnSelectedListener implements OnItemSelectedListener { public void onItemSelected(AdapterView<?> adapterView, View view, int position, long id) { cityId = ((SpinnerItem) adapterView.getItemAtPosition(position)) .getPcode(); String pcode = ((SpinnerItem) adapterView .getItemAtPosition(position)).getPcode(); initCountry(pcode); } public void onNothingSelected(AdapterView<?> adapterView) { } } class DistrictOnSelectedListener implements OnItemSelectedListener { public void onItemSelected(AdapterView<?> adapterView, View view, int position, long id) { districtId = ((SpinnerItem) adapterView.getItemAtPosition(position)) .getPcode(); // 这里我是现实所选择的id,您可以现实汉字 tv_showselect.setText("省份Id=" + provinceId + ",城市Id=" + cityId + ",地区Id:" + districtId); //其他请求的操作 } public void onNothingSelected(AdapterView<?> adapterView) { } } }
无图无真相,上图如下:
资源下载地址:http://download.csdn.net/detail/shi508181017/6908631
有什么不对请大家多多指教,有什么不对会问题可以联系我QQ:508181017
相关文章推荐
- SQl MySql 中 between numberA and numberB 语句 包含numberA和numberB 吗?
- 源码-Oracle数据库管理-第十七章-动态SQL语句-Part 4(使用动态批量绑定)
- 用sql 语句对mysql的表动态管理
- mysql存储过程中根据传入参数,动态拼sql语句并且执行
- 动态SQL语句--mysql--mybaits-
- MySql(3)------SQL基础之DML(Data Manipulation Language),不包含select语句
- SQL语句参考,包含Access、MySQL 以及 SQL Server
- MYSQL 配置查询日志[包含所有执行的SQL语句]
- 存储过程里动态生成包含SQL语句字符串
- mysql动态sql语句
- 一个jdbc的例子(包含sql语句的批处理,事务处理,数据绑定prepare,)
- MySQL 存储过程中执行动态SQL语句的方法
- MySQL存储过程中实现执行动态SQL语句的方法
- MySQL基础----动态SQL语句
- mysql存储过程执行动态sql语句并返回值
- sqlserver 执行包含动态列的sql语句
- mysql动态拼接sql语句
- MySql带参数的存储过程编写(动态执行SQL语句)
- MySQL存储过程中实现执行动态SQL语句的方法
- MySQL中根据if标签实现多条件模糊查询(动态SQL语句)