在我上传的资源中有SQLLite版全国省市区的数据库,现在我来介绍下我开发地址列表时获取省市区数据时的方法。
废话少说,代码如下所示:
package xxxx.com.common;
import java.io.File;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.util.Log;
public class AddressUtil {
//获取省的地址列表,//file-->数据库文件
public static Map<Integer,List> getProvince(File file){
String sql = "select ProSort ,ProName from T_Province ";
SQLiteDatabase db = null;
Cursor c = null;
Map<Integer,List> provinceData = new HashMap<Integer,List>();
//List provinceList = null;
try{
db = SQLiteDatabase.openOrCreateDatabase(file, null);
c = db.rawQuery(sql, null);
List provinceList1 = new ArrayList();
List provinceList2 = new ArrayList();
while(c.moveToNext()){
Map provinceMap = new HashMap();
provinceMap.put(c.getString(1), c.getInt(0));
provinceList1.add(provinceMap);
provinceList2.add(c.getString(1));
}
provinceData.put(0, provinceList1);
provinceData.put(1, provinceList2);
}catch(Exception e){
Log.d("WineStock", "getProvince:"+e.getMessage());
}finally{
if(c!=null){
c.close();
}
if(db!=null){
db.close();
}
}
return provinceData;
}
//获取对应省下面城市的列表,//file-->数据库文件,id-->指对应省的ID
public static Map<Integer,List> getCityByPid(int id,File file){
String sql = "select ProID,CityName from T_City where ProID= "+id;
SQLiteDatabase db = null;
Cursor c = null;
Map<Integer,List> cityData = new HashMap<Integer,List>();
//List cityList = null;
try{
db = SQLiteDatabase.openOrCreateDatabase(file, null);
c = db.rawQuery(sql, null);
List cityList1 = new ArrayList();
List cityList2 = new ArrayList();
while(c.moveToNext()){
Map cityMap = new HashMap();
cityMap.put(c.getString(1), c.getInt(0));
cityList1.add(cityMap);
cityList2.add(c.getString(1));
}
cityData.put(0, cityList1);
cityData.put(1, cityList2);
}catch(Exception e){
Log.d("WineStock", "getCityByPid:"+e.getMessage());
}finally{
if(c!=null){
c.close();
}
if(db!=null){
db.close();
}
}
return cityData;
}
//获取对应市下面区的列表,//file-->数据库文件,id-->指对应市的ID
public static List<String> getAreaByPid(int id,File file){
String sql = "select ZoneName from T_Zone where CityID= "+id;
SQLiteDatabase db = null;
Cursor c = null;
List<String> areaList = null;
try{
db = SQLiteDatabase.openOrCreateDatabase(file, null);
c = db.rawQuery(sql, null);
areaList = new ArrayList<String>();
while(c.moveToNext()){
areaList.add(c.getString(0));
}
}catch(Exception e){
Log.d("WineStock", "getAreaByPid:"+e.getMessage());
}finally{
if(c!=null){
c.close();
}
if(db!=null){
db.close();
}
}
return areaList;
}
}
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 地球OL攻略 —— 某应届生求职总结
· 提示词工程——AI应用必不可少的技术
· Open-Sora 2.0 重磅开源!
· 周边上新:园子的第一款马克杯温暖上架