以前做過,數據是在本地xml里面取的:上面是省市區的xml數據網盤地址。 如果要做成從服務器取,那么就一次性取下來,然后還是一樣的流程。如果你想選擇省再去取對應的市,那么就要傳省的id去獲取對應的市,這時候就要有等待框,可能用戶體驗差一點。
成都創新互聯是一家以網站建設公司、網頁設計、品牌設計、軟件運維、成都網站營銷、小程序App開發等移動開發為一體互聯網公司。已累計為成都陽光房等眾行業中小客戶提供優質的互聯網建站和軟件開發服務。
public class Area {
private String province;
private String city;
//省略屬性區和get set方法
public boolean isSame(Area area){
if(!area.getProvince().equals(province)){
return false;
}
if(!area.getCity().equals(province)){
return false;
}
//省略 區
return true;//相同
}
}
Androidspinner實現省市二級聯動,需要自定義adpter,將數據源綁定到adpter,當點擊省時,觸發自定義響應事件,改變市,示例如下:
public?class?MainActivity?extends?Activity?{?
private?TextView?textView?;?
private?Spinner?province;?
private?Spinner?city;?
/**?Called?when?the?activity?is?first?created.?*/?
@Override?
public?void?onCreate(Bundle?savedInstanceState)?{?
super.onCreate(savedInstanceState);?
setContentView(R.layout.main);?
//String[]?provinces?=?new?String[]{"-省份-","河北省","山西省","北京"};?
textView?=?(TextView)this.findViewById(R.id.textView);?
province?=?(Spinner)this.findViewById(R.id.province);?
city?=?(Spinner)this.findViewById(R.id.city);?
//(處理省的顯示)?
//將可選內容與ArrayAdapter的連接(從資源數組文件中獲取數據)?
ArrayAdapterCharSequence?adapter?=?
ArrayAdapter.createFromResource(this,?R.array.province,?android.R.layout.simple_spinner_item);?
//new?ArrayAdapterString(this,android.R.layout.simple_spinner_item,?provinces);?
//設置下拉列表的風格?
adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);?
//將數據綁定到Spinner視圖上?
province.setAdapter(adapter);?
//添加條目被選中監聽器?
province.setOnItemSelectedListener(new?AdapterView.OnItemSelectedListener()?{?
@Override?
public?void?onItemSelected(AdapterView??parent,?View?view,int?position,?long?id)?{?
//parent既是province對象?
Spinner?spinner?=?(Spinner)parent;?
String?pro?=??(String)spinner.getItemAtPosition(position);?
//(處理省的市的顯示)?
//將默認值與ArrayAdapter連接(從資源數組文件中獲取數據)?
ArrayAdapterCharSequence?cityAdapter?=?ArrayAdapter.createFromResource?
(MainActivity.this,?R.array.citydefault,?android.R.layout.simple_spinner_item);?
//new??ArrayAdapterCharSequence?
//???????????(MainActivity.this,android.R.layout.simple_spinner_item,?cities);?
//獲取所在省含有哪些市(從資源數組文件中獲取數據)?
if(pro.equals("河北省")){?
cityAdapter?=?ArrayAdapter.createFromResource?
(MainActivity.this,?R.array.hb,?android.R.layout.simple_spinner_item);?
}else?if(pro.equals("北京市")){?
cityAdapter?=?ArrayAdapter.createFromResource?
(MainActivity.this,?R.array.bj,?android.R.layout.simple_spinner_item);?
}else?if(pro.equals("山西省")){?
cityAdapter?=?ArrayAdapter.createFromResource?
(MainActivity.this,?R.array.shx,?android.R.layout.simple_spinner_item);?
}?
//綁定數據到Spinner(City)上?
city.setAdapter(cityAdapter);?
}?
@Override?
public?void?onNothingSelected(AdapterView??parent)?{?
}?
});?
}?
}
標題名稱:android省市,安卓是哪個省
轉載源于:http://m.newbst.com/article8/dssehip.html
成都網站建設公司_創新互聯,為您提供、定制網站、App設計、網站維護、面包屑導航、動態網站
聲明:本網站發布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創新互聯