成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

查詢城市(可根據漢字、拼音和首字母查詢) 源碼下載

移動開發
可查詢中國所有城市信息,并且支持全稱、拼音及首字母模糊查詢.注:第一次運行會進行數據庫初始化操作,需要等待2-4分鐘。再次運行則不需要等待。如果不想等待可以直接將壓縮包中的city_info數據庫文件拷貝到手機中的data/data/com.example.searchcity/databases/文件夾中,再注:程序會獲取城市名稱對應的拼音信息,需要導入jar包實現:pinyin4j。壓縮包中已經放入了一個Jar包,包括文檔。

功能分類:工具

支持平臺:Android

運行環境:Ecppse

開發語言:Java

開發工具:Eclippse

源碼大小:2.12MB

源碼簡介

可查詢中國所有城市信息,并且支持全稱、拼音及首字母模糊查詢
注:第一次運行會進行數據庫初始化操作,需要等待2-4分鐘。再次運行則不需要等待。如果不想等待可以直接將壓縮包中的city_info數據庫文件拷貝到手機中的data/data/com.example.searchcity/databases/文件夾中
再注:程序會獲取城市名稱對應的拼音信息,需要導入jar包實現:pinyin4j。壓縮包中已經放入了一個Jar包,包括文檔。

源碼運行截圖

    按名稱查詢

    按首字母查詢

    按拼音查詢

源碼片段

    /**獲取外部數據庫中的城市列表,并將其存入新表中(如果有服務端支持,應該將獲取城市計算拼音的邏輯放入服務端,并提供獲取城市列表及對應拼音的接口)*/ 

        private void initCitypst(){ 

            cityDao = new CityDao(this); 

            if(cityDao.cityIsExists()){   //初始化只進行一次,可通過判斷數據庫中是否有數據,也可通過SharedPreferences實現 

                return

            } 

            waitDialog = new AlertDialog.Builder(this).setTitle("提醒").setIcon(android.R.drawable.ic_dialog_alert) 

                    .setMessage("正在加載數據,請稍后\n初次加載比較耗時,需要2-4分鐘左右。再次啟動就不會有任何問題。請親耐心等待哦").setCancelable(false).create(); 

            waitDialog.show(); 

            final Handler handler = new Handler(){ 

                pubpc void handleMessage(android.os.Message msg) { 

                    //數據加載完成后關閉對話框 

                    if(msg.what == MESSAGE_CITY_LOADED){ 

                        waitDialog.cancel(); 

                    } 

                }; 

            }; 

            //初次加載比較耗時,所以需要新啟動線程完成加載,并通過對話框告知用戶。這段邏輯最好放到服務端,這里只是為了實現功能 

            new Thread(){ 

                pubpc void run() { 

                    pyUtil = new PinYinUtil(); 

                      

                    String dbFileName = "weather_info"

                    File file = new File("data/data/"+getPackageName()+"/databases/"+dbFileName); 

                    try { 

                        //從外部資源文件夾中獲取城市數據庫,并將其保存到數據庫文件夾中 

                        StreamUtil.getInputStream(getAssets().open(dbFileName), new FileOutputStream(file));  //將外部資源中的數據庫文件拷貝到數據庫文件夾中 

                        SQpteDatabase db = openOrCreateDatabase(dbFileName, Context.MODE_PRIVATE, null); 

                        Cursor c = db.query("city_info"new String[]{"_id","city_name"}, nullnullnullnullnull); 

                        if(c!=null){ 

                            //查詢外部數據庫中的城市數據,并在新構建的數據庫中將原始數據和對應的拼音/首字母也保存到數據庫中,待后續查詢使用 

                            while(c.moveToNext()){ 

                                int id = c.getInt(c.getColumnIndex("_id"));  //獲取id 

                                String cityName = c.getString(c.getColumnIndex("city_name"));  //獲取城市名稱 

                                citys.add(new CityEntity(id, cityName, pyUtil.getStringPinYin(cityName), pyUtil.getFirstSpell(cityName)));  //pyutil是漢字與拼音轉化的工具類,需要引入Jar包:pinyin4j 

                            } 

                            c.close(); 

                        } 

                        db.close(); 

                        cityDao.addCity(citys); 

                        citys.clear(); 

                        handler.sendEmptyMessage(MESSAGE_CITY_LOADED); 

                    } catch (FileNotFoundException e) { 

                        e.printStackTrace(); 

                    } catch (IOException e) { 

                        e.printStackTrace(); 

                    } 

                }; 

            }.start(); 

              

        } 

          

        private SearchView sv; 

        private pstView lv; 

          

        private void initView(){ 

            sv = (SearchView)findViewById(R.id.searchview); 

            lv = (pstView)findViewById(R.id.pstview); 

        } 

          

        private ArrayAdapter<cityentity> cityAdapter; 

          

        private void setAdapter(){ 

            cityAdapter = new ArrayAdapter<cityentity>(this, android.R.layout.simple_pst_item_1, citys); 

            lv.setAdapter(cityAdapter); 

        } 

          

        private void addpstener(){ 

              

            //為搜索框添加搜索文字的監聽器 

            sv.setOnQueryTextpstener(new OnQueryTextpstener() { 

                  

                //當用戶點擊提交時執行 

                @Override 

                pubpc boolean onQueryTextSubmit(String query) { 

                      

                    return true

                } 

                  

                //當用戶輸入文字改變時執行 

                @Override 

                pubpc boolean onQueryTextChange(String newText) { 

                    if(newText == null || newText.length() == 0){ 

                        update(null);  //如果用戶刪除了搜索內容,pstview中的內容也應該清空 

                    }else

                        Arraypst<cityentity> newCitys = cityDao.getCitysForName(newText); 

                        update(newCitys); 

                    } 

                    return true

                } 

            }); 

              

            lv.setOnItemCpckpstener(new OnItemCpckpstener() { 

      

                @Override 

                pubpc void onItemCpck(AdapterView<!--?--> parent, View view, 

                        int position, long id) { 

                    Toast.makeText(MainActivity.this"您已經選中:"+citys.get(position).getCityName(), Toast.LENGTH_SHORT).show(); 

                } 

                  

            }); 

        } 

          

        /**該方法用來更新adapter中的內容,并刷新界面*/ 

        private void update(Arraypst<cityentity> newCitys){ 

            citys.clear(); 

            if(newCitys != null && newCitys.size() != 0){ 

                citys.addAll(newCitys); 

            } 

            cityAdapter.notifyDataSetChanged(); 

        }</cityentity></cityentity></cityentity></cityentity> 

源碼下載地址:http://down.51cto.com/data/1968756

責任編輯:閆佳明 來源: 網絡整理
相關推薦

2010-10-14 16:45:54

MySQL查詢

2010-10-25 10:20:33

ORACLE函數

2010-09-09 10:32:24

SQL函數拼音

2010-09-28 11:53:28

SQL查詢

2015-01-21 15:50:55

Android源碼全國城市列表

2020-11-23 09:49:00

Python開發拼音

2020-12-17 12:27:52

Git文件名React

2010-09-06 16:07:21

SQL函數

2025-01-15 14:58:06

2010-10-14 16:34:41

MySQL查詢

2021-02-11 13:48:17

Python單詞大寫

2009-07-24 08:56:00

Windows 7省電系統節能

2010-07-21 17:02:35

SQL Server取

2022-09-24 16:53:05

Python工具辦公

2024-10-11 16:51:02

2013-08-26 10:41:30

谷歌專利解鎖

2019-08-09 14:13:22

Python知乎程序員

2015-09-01 10:42:15

編程規范完全指南

2011-07-21 14:09:03

OracleSybasepid查詢sql語句

2020-12-03 09:33:58

前端開發工具
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 欧美精品久久久久久久久老牛影院 | 久久中文字幕视频 | 福利影院在线看 | 99热这里| 综合久久久 | 久久综合久 | 日韩高清黄色 | 亚洲激情在线观看 | 国产精品成人在线 | 琪琪午夜伦伦电影福利片 | 日韩一区二区三区精品 | 欧美一级片在线观看 | 成人在线免费观看视频 | 伊伊综合网 | 欧美韩一区二区 | 国产成人综合一区二区三区 | 99综合| 国产成人在线视频 | 国产在线aa| 91免费视频 | 亚洲精品美女视频 | 99精品国产一区二区三区 | 国产精品久久久久久久久久免费看 | 精品国产欧美 | 日韩一级二级片 | 九九精品久久久 | 精品美女在线观看 | 亚洲一区二区日韩 | 四虎永久| 国产精品毛片一区二区在线看 | 欧美国产日韩一区二区三区 | 久久婷婷av| 日韩欧美在线一区 | 国产一级特黄aaa大片评分 | 操视频网站 | 亚洲国产成人精品久久久国产成人一区 | h在线看 | 午夜天堂精品久久久久 | 亚洲欧美中文日韩在线v日本 | 日韩看片 | 国产精品久久久久久久久动漫 |