自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

Android源碼:獲取全國城市列表 類似于聯(lián)系人排序

移動開發(fā) Android
中國城市列表,類似手機通訊錄顯示方式,可以通過觸摸屏幕右邊城市拼音首字母快速定位,還可通過中文、拼音快速查找。**修改demo在小米手機上排序錯誤的問題需要的朋友可以參考一下!如有侵權(quán),請見諒..

功能分類:工具

支持平臺:Android

運行環(huán)境:Eclipse

開發(fā)語言:Java

開發(fā)工具:Eclipse

源碼大?。?.24MB

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

源碼簡介

項目源地址:https://github.com/kk-java/ChineseCityList

中國城市列表,類似手機通訊錄顯示方式,可以通過觸摸屏幕右邊城市拼音首字母快速定位,還可通過中文、拼音快速查找。

** 修改demo在小米手機上排序錯誤的問題

需要的朋友可以參考一下!

如有侵權(quán),請見諒..

源碼運行截圖

    運行截圖

    運行截圖

    運行截圖

源碼片段

  1. package com.liucanwen.citylist; 
  2.   
  3. import java.util.ArrayList; 
  4. import java.util.List; 
  5.   
  6. import android.app.Activity; 
  7. import android.content.Context; 
  8. import android.os.AsyncTask; 
  9. import android.os.Bundle; 
  10. import android.text.Editable; 
  11. import android.text.TextWatcher; 
  12. import android.util.Log; 
  13. import android.view.View; 
  14. import android.widget.AdapterView; 
  15. import android.widget.EditText; 
  16. import android.widget.Toast; 
  17.   
  18. import com.liucanwen.citylist.adapter.CityAdapter; 
  19. import com.liucanwen.citylist.data.CityData; 
  20. import com.liucanwen.citylist.model.CityItem; 
  21. import com.liucanwen.citylist.widget.ContactItemInterface; 
  22. import com.liucanwen.citylist.widget.ContactListViewImpl; 
  23.   
  24. public class CityListActivity extends Activity implements TextWatcher 
  25.     private Context context_ = CityListActivity.this
  26.   
  27.     private ContactListViewImpl listview; 
  28.   
  29.     private EditText searchBox; 
  30.     private String searchString; 
  31.   
  32.     private Object searchLock = new Object(); 
  33.     boolean inSearchMode = false
  34.   
  35.     private final static String TAG = "MainActivity2"
  36.   
  37.     List<contactiteminterface> contactList; 
  38.     List<contactiteminterface> filterList; 
  39.     private SearchListTask curSearchTask = null
  40.   
  41.     @Override 
  42.     public void onCreate(Bundle savedInstanceState) 
  43.     { 
  44.         super.onCreate(savedInstanceState); 
  45.         setContentView(R.layout.citylist); 
  46.   
  47.         filterList = new ArrayList<contactiteminterface>(); 
  48.         contactList = CityData.getSampleContactList(); 
  49.   
  50.         CityAdapter adapter = new CityAdapter(this,R.layout.city_item, contactList); 
  51.   
  52.         listview = (ContactListViewImpl) this.findViewById(R.id.listview); 
  53.         listview.setFastScrollEnabled(true); 
  54.         listview.setAdapter(adapter); 
  55.   
  56.         listview.setOnItemClickListener(new AdapterView.OnItemClickListener() 
  57.         { 
  58.             @Override 
  59.             public void onItemClick(AdapterView parent, View v, int position, 
  60.                     long id) 
  61.             { 
  62.                 List<contactiteminterface> searchList = inSearchMode ? filterList 
  63.                         : contactList; 
  64.   
  65.                 Toast.makeText(context_, 
  66.                         searchList.get(position).getDisplayInfo(), 
  67.                         Toast.LENGTH_SHORT).show(); 
  68.             } 
  69.         }); 
  70.   
  71.         searchBox = (EditText) findViewById(R.id.input_search_query); 
  72.         searchBox.addTextChangedListener(this); 
  73.     } 
  74.   
  75.     @Override 
  76.     public void afterTextChanged(Editable s) 
  77.     { 
  78.         searchString = searchBox.getText().toString().trim().toUpperCase(); 
  79.   
  80.         if (curSearchTask != null 
  81.                 && curSearchTask.getStatus() != AsyncTask.Status.FINISHED) 
  82.         { 
  83.             try 
  84.             { 
  85.                 curSearchTask.cancel(true); 
  86.             } catch (Exception e) 
  87.             { 
  88.                 Log.i(TAG, "Fail to cancel running search task"); 
  89.             } 
  90.   
  91.         } 
  92.         curSearchTask = new SearchListTask(); 
  93.         curSearchTask.execute(searchString); 
  94.     } 
  95.   
  96.     @Override 
  97.     public void beforeTextChanged(CharSequence s, int start, int count, 
  98.             int after) 
  99.     { 
  100.     } 
  101.   
  102.     @Override 
  103.     public void onTextChanged(CharSequence s, int start, int before, int count) 
  104.     { 
  105.         // do nothing 
  106.     } 
  107.   
  108.     private class SearchListTask extends AsyncTask<string, void,="" string=""
  109.     { 
  110.   
  111.         @Override 
  112.         protected String doInBackground(String... params) 
  113.         { 
  114.             filterList.clear(); 
  115.   
  116.             String keyword = params[0]; 
  117.   
  118.             inSearchMode = (keyword.length() > 0); 
  119.   
  120.             if (inSearchMode) 
  121.             { 
  122.                 // get all the items matching this 
  123.                 for (ContactItemInterface item : contactList) 
  124.                 { 
  125.                     CityItem contact = (CityItem) item; 
  126.   
  127.                     boolean isPinyin = contact.getFullName().toUpperCase().indexOf(keyword) > -1
  128.                     boolean isChinese = contact.getNickName().indexOf(keyword) > -1
  129.   
  130.                     if (isPinyin || isChinese) 
  131.                     { 
  132.                         filterList.add(item); 
  133.                     } 
  134.   
  135.                 } 
  136.   
  137.             } 
  138.             return null
  139.         } 
  140.   
  141.         protected void onPostExecute(String result) 
  142.         { 
  143.   
  144.             synchronized (searchLock) 
  145.             { 
  146.   
  147.                 if (inSearchMode) 
  148.                 { 
  149.   
  150.                     CityAdapter adapter = new CityAdapter(context_,R.layout.city_item, filterList); 
  151.                     adapter.setInSearchMode(true); 
  152.                     listview.setInSearchMode(true); 
  153.                     listview.setAdapter(adapter); 
  154.                 } else 
  155.                 { 
  156.                     CityAdapter adapter = new CityAdapter(context_,R.layout.city_item, contactList); 
  157.                     adapter.setInSearchMode(false); 
  158.                     listview.setInSearchMode(false); 
  159.                     listview.setAdapter(adapter); 
  160.                 } 
  161.             } 
  162.   
  163.         } 
  164.     } 
  165.   
  166. </string,></contactiteminterface></contactiteminterface></contactiteminterface></contactiteminterface> 

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

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

2014-12-30 11:51:35

ListViewItem View

2012-03-01 19:44:18

Android

2011-05-26 14:42:34

Android 手機

2010-01-27 14:08:56

Android查詢聯(lián)系

2012-05-22 09:21:10

數(shù)據(jù)中心PUEFacebook數(shù)據(jù)中

2012-05-21 14:36:18

Facebook開源

2017-09-01 15:42:00

MySQLOracledblink功能

2010-01-27 10:09:14

2015-11-11 10:17:15

ios9聯(lián)系人框架干貨

2012-02-02 17:16:11

Windows PhoC#聯(lián)系人資料

2020-02-02 14:45:55

聯(lián)系人開源工具

2015-03-10 14:41:56

AppStudio

2023-10-29 15:14:22

人工智能鴿子

2011-08-12 10:16:10

iPhone通訊錄聯(lián)系人

2020-11-19 15:26:36

SQLPandas代碼

2013-09-17 09:51:49

谷歌Bump移動應(yīng)用

2012-03-26 21:38:36

智能

2021-06-10 14:14:50

Windows命名微軟

2010-02-03 09:15:09

Linux XDMCP

2012-02-24 09:25:58

點贊
收藏

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