日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

第8天

發布時間:2024/1/18 编程问答 30 豆豆
生活随笔 收集整理的這篇文章主要介紹了 第8天 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

收貨地址


一.三級聯動PickerView

?①.文件

<root><province name="安徽省"><city name="安慶市"><district name="樅陽縣" zipcode="246000" /><district name="大觀區" zipcode="246000" /><district name="懷寧縣" zipcode="246000" /><district name="潛山縣" zipcode="246000" /><district name="宿松縣" zipcode="246000" /><district name="太湖縣" zipcode="246000" /><district name="桐城市" zipcode="246000" /><district name="望江縣" zipcode="246000" /><district name="宜秀區" zipcode="246000" /><district name="迎江區" zipcode="246000" /><district name="岳西縣" zipcode="246000" /><district name="其他" zipcode="246000" /></city><city name="蚌埠市"><district name="蚌山區" zipcode="233000" /><district name="固鎮縣" zipcode="233000" /><district name="懷遠縣" zipcode="233000" /><district name="淮上區" zipcode="233000" /><district name="龍子湖區" zipcode="233000" /><district name="五河縣" zipcode="233000" /><district name="禹會區" zipcode="233000" /><district name="其他" zipcode="233000" /></city><city name="亳州市"><district name="利辛縣" zipcode="236000" /><district name="蒙城縣" zipcode="236000" /><district name="譙城區" zipcode="236000" /><district name="渦陽縣" zipcode="236000" /><district name="其他" zipcode="236000" /></city>

②.省?

public class ProvinceModel {private String name;private List<CityModel> cityList;public ProvinceModel() {super();}public ProvinceModel(String name, List<CityModel> cityList) {super();this.name = name;this.cityList = cityList;}public String getName() {return name;}public void setName(String name) {this.name = name;}public List<CityModel> getCityList() {return cityList;}public void setCityList(List<CityModel> cityList) {this.cityList = cityList;}@Overridepublic String toString() { // return "ProvinceModel [name=" + name + ", cityList=" + cityList + "]";return name;}} ③。市

public class CityModel {private String name;private List<DistrictModel> districtList;public CityModel() {super();}public CityModel(String name, List<DistrictModel> districtList) {super();this.name = name;this.districtList = districtList;}public String getName() {return name;}public void setName(String name) {this.name = name;}public List<DistrictModel> getDistrictList() {return districtList;}public void setDistrictList(List<DistrictModel> districtList) {this.districtList = districtList;}@Overridepublic String toString() {return "CityModel [name=" + name + ", districtList=" + districtList+ "]";}} ④.區 public class DistrictModel {private String name;private String zipcode;public DistrictModel() {super();}public DistrictModel(String name, String zipcode) {super();this.name = name;this.zipcode = zipcode;}public String getName() {return name;}public void setName(String name) {this.name = name;}public String getZipcode() {return zipcode;}public void setZipcode(String zipcode) {this.zipcode = zipcode;}@Overridepublic String toString() {return "DistrictModel [name=" + name + ", zipcode=" + zipcode + "]";}}

⑥.sax解析xml數據

public class XmlParserHandler extends DefaultHandler {/*** 存儲所有的解析對象*/private List<ProvinceModel> provinceList = new ArrayList<ProvinceModel>();ProvinceModel provinceModel = new ProvinceModel();CityModel cityModel = new CityModel();DistrictModel districtModel = new DistrictModel();public XmlParserHandler() {}//獲取所有解析對象public List<ProvinceModel> getDataList() {return provinceList;}//1.start開始解析@Overridepublic void startDocument() throws SAXException {// 當讀到第一個開始標簽的時候,會觸發這個方法}//2.解析節點@Overridepublic void startElement(String uri, String localName, String qName,Attributes attributes) throws SAXException {// 當遇到開始標記的時候,調用這個方法if (qName.equals("province")) {provinceModel = new ProvinceModel();provinceModel.setName(attributes.getValue(0));provinceModel.setCityList(new ArrayList<CityModel>());} else if (qName.equals("city")) {cityModel = new CityModel();cityModel.setName(attributes.getValue(0));cityModel.setDistrictList(new ArrayList<DistrictModel>());} else if (qName.equals("district")) {districtModel = new DistrictModel();districtModel.setName(attributes.getValue(0));districtModel.setZipcode(attributes.getValue(1));}}//3.解析節點結束@Overridepublic void endElement(String uri, String localName, String qName)throws SAXException {// 遇到結束標記的時候,會調用這個方法if (qName.equals("district")) {cityModel.getDistrictList().add(districtModel);} else if (qName.equals("city")) {provinceModel.getCityList().add(cityModel);} else if (qName.equals("province")) {provinceList.add(provinceModel);}}//4.獲取節點的內容@Overridepublic void characters(char[] ch, int start, int length)throws SAXException {}//5.start結束解析@Overridepublic void endDocument() throws SAXException {super.endDocument();} }

.收貨地址設置post給服務器

/*** Created by asus on 2016/11/2.*/ public class AddressAddActivity extends AppCompatActivity {@ViewInject(R.id.edittxt_consignee)//收件人姓名private ClearEditText mEditConsignee;@ViewInject(R.id.edittxt_phone)//收件人電話private ClearEditText mEditPhone;@ViewInject(R.id.edittxt_add)//收件人詳細地址private ClearEditText mEditAddr;@ViewInject(R.id.txt_address)//聯系人地址private TextView mTxtAddress;@ViewInject(R.id.toolbar)private CnToolbar mToolBar;private OptionsPickerView pvOptions;private OkHttpHelper mHttpHelper=OkHttpHelper.getInstance();private List<ProvinceModel> mProvinces;//省private ArrayList<ArrayList<String>> mCities = new ArrayList<ArrayList<String>>();//市private ArrayList<ArrayList<ArrayList<String>>> mDistricts = new ArrayList<ArrayList<ArrayList<String>>>();//縣@Overrideprotected void onCreate(@Nullable Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_address_add);ViewUtils.inject(this);initToolbar();init();}private void initToolbar() {mToolBar.setRightButtonText("完成");mToolBar.setmRightImageButtonOnclickListener(new View.OnClickListener() {@Overridepublic void onClick(View v) {createAddress();}});}private void init() {initProvinceDatas();//選項選擇器pvOptions = new OptionsPickerView(this);pvOptions.setPicker((ArrayList) mProvinces,mCities,mDistricts,true);pvOptions.setTitle("選擇城市");pvOptions.setCyclic(false,false,false);//設置是否可以循環滾動pvOptions.setOnoptionsSelectListener(new OptionsPickerView.OnOptionsSelectListener() {@Overridepublic void onOptionsSelect(int options1, int option2, int options3) {String tx = mProvinces.get(options1).getName() +" "+ mCities.get(options1).get(option2) +" "+ mDistricts.get(options1).get(option2).get(options3);mTxtAddress.setText(tx);}});}//sax解析xml數據private void initProvinceDatas() {AssetManager assets = getAssets();InputStream inputStream = null;try {inputStream = assets.open("province_data.xml");SAXParserFactory saxParserFactory = SAXParserFactory.newInstance();SAXParser parser = saxParserFactory.newSAXParser();MyxmlParserHandler myxmlParserHandler = new MyxmlParserHandler();parser.parse(inputStream,myxmlParserHandler);// 獲取解析出來的數據mProvinces = myxmlParserHandler.getDataList();} catch (Exception e) {e.printStackTrace();}finally {try {inputStream.close();} catch (IOException e) {e.printStackTrace();}}//填充數據if(mProvinces!=null){for (ProvinceModel p :mProvinces){List<CityModel> cityList = p.getCityList();//1.城市對象集合 17ArrayList<String> cityStrs = new ArrayList<>(); //城市String Listfor (CityModel c :cityList){cityStrs.add(c.getName()); //1ArrayList<ArrayList<String>> dts = new ArrayList<>(); // 地區String List1 11List<DistrictModel> districts = c.getDistrictList();//2.地區對象集合 12ArrayList<String> districtStrs = new ArrayList<>();//地區String List2 12for (DistrictModel d : districts){districtStrs.add(d.getName()); // 把城市名稱放入 districtStrs}dts.add(districtStrs);mDistricts.add(dts);}LogUtils.d("地區大小 1"+mDistricts.size());mCities.add(cityStrs); // 組裝城市數據}LogUtils.d("城市List集合 2"+mCities.size());}}//顯示三級聯動@OnClick(R.id.ll_city_picker)public void showCityPickerView(View view){pvOptions.show();}//將數據post給服務器public void createAddress(){String consignee = mEditConsignee.getText().toString();String phone = mEditPhone.getText().toString();String address = mTxtAddress.getText().toString() + mEditAddr.getText().toString();HashMap<String,Object> params = new HashMap<>(1);params.put("user_id",MyApplication.getInstance().getUser().getId());params.put("consignee",consignee);params.put("phone",phone);params.put("addr",address);params.put("zip_code","000000");mHttpHelper.post(Contants.API.ADDRESS_CREATE, params, new SpotsCallBack<BaseRespMsg>(this,false){@Overridepublic void onSuccess(Response response, BaseRespMsg baseRespMsg) {if(baseRespMsg.getStatus()==BaseRespMsg.STATUS_SUCCESS){setResult(RESULT_OK);finish();}}@Overridepublic void onError(Response response, int code, Exception e) {}});} }



二.地址界面的展示


/*** Created by asus on 2016/11/2.*/ public class AddressListActivity extends AppCompatActivity {@ViewInject(R.id.toolbar)private CnToolbar mToolBar;@ViewInject(R.id.recycler_view)private RecyclerView mRecyclerview;private AddressAdapter mAdapter;private OkHttpHelper mHttpHelper = OkHttpHelper.getInstance();@Overrideprotected void onCreate(@Nullable Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_address_list);ViewUtils.inject(this);initToolbar();initAddress();}private void initToolbar() {mToolBar.setNavigationOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View v) {finish();}});mToolBar.setRightButtonIcon(getResources().getDrawable(R.drawable.icon_add));mToolBar.setmRightImageButtonOnclickListener(new View.OnClickListener() {@Overridepublic void onClick(View v) {Intent intent = new Intent(AddressListActivity.this, AddressAddActivity.class);startActivityForResult(intent, Contants.REQUEST_CODE);}});}//請求數據private void initAddress() {HashMap<String, Object> params = new HashMap<>(1);params.put("user_id", MyApplication.getInstance().getUser().getId());mHttpHelper.get(Contants.API.ADDRESS_LIST, params, new SpotsCallBack<List<Address>>(this, false) {@Overridepublic void onSuccess(Response response, List<Address> addresses) {showAddress(addresses);//展示地址信息}@Overridepublic void onError(Response response, int code, Exception e) {}});}//展示數據private void showAddress(List<Address> addresses) {Collections.sort(addresses);//按照地址進行排序if (mAdapter == null) {mAdapter = new AddressAdapter(addresses, this);mAdapter.setOnAddressLisneter(new AddressAdapter.OnAddressLisneter() {@Overridepublic void setDefault(Address address) {//監聽checkbox的點擊事件 點擊之后更新數據,提交到服務器updateAddress(address);}@Overridepublic void deleteAddress(Address address) {todeleteAddress(address);}});mRecyclerview.setAdapter(mAdapter);mRecyclerview.setLayoutManager(new LinearLayoutManager(AddressListActivity.this));mRecyclerview.addItemDecoration(new DividerItemDecoration(this, DividerItemDecoration.VERTICAL_LIST));} else {mAdapter.refreshData(addresses);mRecyclerview.setAdapter(mAdapter);}}//刪除地址private void todeleteAddress(Address address) {HashMap<String, Object> params = new HashMap<>(1);params.put("id", address.getId());mHttpHelper.post(Contants.API.ADDRESS_DEL, params, new SpotsCallBack<BaseRespMsg>(this, false) {@Overridepublic void onSuccess(Response response, BaseRespMsg baseRespMsg) {if (baseRespMsg.getStatus() == BaseRespMsg.STATUS_SUCCESS) {initAddress();}}@Overridepublic void onError(Response response, int code, Exception e) {}});}//更新地址數據public void updateAddress(Address address) {HashMap<String, Object> params = new HashMap<>(1);params.put("id", address.getId());params.put("consignee", address.getConsignee());params.put("phone", address.getPhone());params.put("addr", address.getAddr());params.put("zip_code", address.getZipCode());params.put("is_default", address.getIsDefault());mHttpHelper.post(Contants.API.ADDRESS_UPDATE, params, new SpotsCallBack<BaseRespMsg>(this, false) {@Overridepublic void onSuccess(Response response, BaseRespMsg baseRespMsg) {if (baseRespMsg.getStatus() == BaseRespMsg.STATUS_SUCCESS) {initAddress();}}@Overridepublic void onError(Response response, int code, Exception e) {}});}@Overrideprotected void onActivityResult(int requestCode, int resultCode, Intent data) {//當增加了數據的時候再重新請求一次initAddress();}}


總結

以上是生活随笔為你收集整理的第8天的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。