偷偷摘套内射激情视频,久久精品99国产国产精,中文字幕无线乱码人妻,中文在线中文a,性爽19p

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

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

功能分類:工具

支持平臺(tái):Android

運(yùn)行環(huán)境:Ecppse

開(kāi)發(fā)語(yǔ)言:Java

開(kāi)發(fā)工具:Eclippse

源碼大小:2.12MB

源碼簡(jiǎn)介

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

源碼運(yùn)行截圖

    按名稱查詢

    按首字母查詢

    按拼音查詢

源碼片段

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

        private void initCitypst(){ 

            cityDao = new CityDao(this); 

            if(cityDao.cityIsExists()){   //初始化只進(jìn)行一次,可通過(guò)判斷數(shù)據(jù)庫(kù)中是否有數(shù)據(jù),也可通過(guò)SharedPreferences實(shí)現(xiàn) 

                return

            } 

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

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

            waitDialog.show(); 

            final Handler handler = new Handler(){ 

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

                    //數(shù)據(jù)加載完成后關(guān)閉對(duì)話框 

                    if(msg.what == MESSAGE_CITY_LOADED){ 

                        waitDialog.cancel(); 

                    } 

                }; 

            }; 

            //初次加載比較耗時(shí),所以需要新啟動(dòng)線程完成加載,并通過(guò)對(duì)話框告知用戶。這段邏輯最好放到服務(wù)端,這里只是為了實(shí)現(xiàn)功能 

            new Thread(){ 

                pubpc void run() { 

                    pyUtil = new PinYinUtil(); 

                      

                    String dbFileName = "weather_info"

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

                    try { 

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

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

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

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

                        if(c!=null){ 

                            //查詢外部數(shù)據(jù)庫(kù)中的城市數(shù)據(jù),并在新構(gòu)建的數(shù)據(jù)庫(kù)中將原始數(shù)據(jù)和對(duì)應(yīng)的拼音/首字母也保存到數(shù)據(jù)庫(kù)中,待后續(xù)查詢使用 

                            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是漢字與拼音轉(zhuǎn)化的工具類,需要引入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(){ 

              

            //為搜索框添加搜索文字的監(jiān)聽(tīng)器 

            sv.setOnQueryTextpstener(new OnQueryTextpstener() { 

                  

                //當(dāng)用戶點(diǎn)擊提交時(shí)執(zhí)行 

                @Override 

                pubpc boolean onQueryTextSubmit(String query) { 

                      

                    return true

                } 

                  

                //當(dāng)用戶輸入文字改變時(shí)執(zhí)行 

                @Override 

                pubpc boolean onQueryTextChange(String newText) { 

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

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

                    }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"您已經(jīng)選中:"+citys.get(position).getCityName(), Toast.LENGTH_SHORT).show(); 

                } 

                  

            }); 

        } 

          

        /**該方法用來(lái)更新adapter中的內(nèi)容,并刷新界面*/ 

        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

責(zé)任編輯:閆佳明 來(lái)源: 網(wǎng)絡(luò)整理
相關(guān)推薦

2010-10-14 16:45:54

MySQL查詢

2010-10-25 10:20:33

ORACLE函數(shù)

2010-09-09 10:32:24

SQL函數(shù)拼音

2010-09-28 11:53:28

SQL查詢

2015-01-21 15:50:55

Android源碼全國(guó)城市列表

2020-11-23 09:49:00

Python開(kāi)發(fā)拼音

2020-12-17 12:27:52

Git文件名React

2010-09-06 16:07:21

SQL函數(shù)

2025-01-15 14:58:06

2010-10-14 16:34:41

MySQL查詢

2021-02-11 13:48:17

Python單詞大寫(xiě)

2009-07-24 08:56:00

Windows 7省電系統(tǒng)節(jié)能

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

編程規(guī)范完全指南

2011-07-21 14:09:03

OracleSybasepid查詢sql語(yǔ)句

2020-12-03 09:33:58

前端開(kāi)發(fā)工具
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)