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

歡迎訪(fǎng)問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 运维知识 > Android >内容正文

Android

Android 省,市,区选择权

發(fā)布時(shí)間:2024/4/15 Android 26 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Android 省,市,区选择权 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

?不廢話(huà),需求:做一個(gè)好看的省,市,區(qū)三級(jí)聯(lián)動(dòng)的選擇器,怎么辦?

需要WheelView基礎(chǔ)控件自行擴(kuò)展實(shí)現(xiàn)邏輯,可直接添加基礎(chǔ)控件庫(kù),Gradle 依賴(lài):

compile 'com.contrarywind:wheelview:4.0.9'

布局:

<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"android:layout_width="wrap_content"android:layout_height="wrap_content"android:orientation="vertical"><includelayout="@layout/include_pickerview_topbar"android:layout_width="match_parent"android:layout_height="@dimen/pickerview_topbar_height" /><LinearLayoutandroid:id="@+id/optionspicker"android:layout_width="match_parent"android:layout_height="wrap_content"android:background="@android:color/white"android:orientation="horizontal"><com.contrarywind.view.WheelViewandroid:id="@+id/options1"android:layout_width="0dp"android:layout_height="wrap_content"android:layout_weight="1" /><com.contrarywind.view.WheelViewandroid:id="@+id/options2"android:layout_width="0dp"android:layout_height="wrap_content"android:layout_weight="1" /><com.contrarywind.view.WheelViewandroid:id="@+id/options3"android:layout_width="0dp"android:layout_height="wrap_content"android:layout_weight="1" /></LinearLayout></LinearLayout>

初始化PopWindow:

private void initPopwindow() {popupWindow = new PopupWindow(this);LayoutInflater inflater = (LayoutInflater) getSystemService(Context.LAYOUT_INFLATER_SERVICE);View mMenuView = inflater.inflate(R.layout.my_pickerview_options, null);Button btnCancel, btnSubmit;options1 = mMenuView.findViewById(R.id.options1);options2 = mMenuView.findViewById(R.id.options2);options3 = mMenuView.findViewById(R.id.options3);btnCancel = mMenuView.findViewById(R.id.btnCancel);btnSubmit = mMenuView.findViewById(R.id.btnSubmit);btnCancel.setTextColor(ContextCompat.getColor(RegisterShopActivity.this, R.color.colorCancel));btnSubmit.setTextColor(ContextCompat.getColor(RegisterShopActivity.this, R.color.colorSub));btnSubmit.setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View v) {String opt1tx = mOptionsItems1.size() > 0 ?mOptionsItems1.get(options1.getCurrentItem()) : "";String opt2tx = mOptionsItems2.size() > 0 ?mOptionsItems2.get(options2.getCurrentItem()) : "";String opt3tx = mOptionsItems3.size() > 0 ?mOptionsItems3.get(options3.getCurrentItem()) : "";String tx = opt1tx + opt2tx + opt3tx;tvShopAddress.setText(tx);tvShopAddress.setTextColor(ContextCompat.getColor(RegisterShopActivity.this, R.color.colorText));isSelectAdress = true;popupWindow.dismiss();}});btnCancel.setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View v) {popupWindow.dismiss();}});options1.setCyclic(false);options2.setCyclic(false);options3.setCyclic(false);options1.setDividerColor(Color.BLACK);options2.setDividerColor(Color.BLACK);options3.setDividerColor(Color.BLACK); // options1.setIsOptions(true); // options2.setIsOptions(true); // options3.setIsOptions(true);options1.setAdapter(new ArrayWheelAdapter(mOptionsItems1));options2.setAdapter(new ArrayWheelAdapter(mOptionsItems2));options3.setAdapter(new ArrayWheelAdapter(mOptionsItems3));options1.setTextSize(20);options2.setTextSize(20);options3.setTextSize(20);options1.setOnItemSelectedListener(new OnItemSelectedListener() {@Overridepublic void onItemSelected(int index) { // Toast.makeText(RegisterShopActivity.this, "" + mOptionsItems1.get(index), Toast.LENGTH_SHORT).show();int province_id = province.get(index).getProvince_id();getCity(province_id + "");}});options2.setOnItemSelectedListener(new OnItemSelectedListener() {@Overridepublic void onItemSelected(int index) { // Toast.makeText(RegisterShopActivity.this, "" + mOptionsItems2.get(index), Toast.LENGTH_SHORT).show();long city_id = city.get(index).getCity_id();getCounty(city_id + "");}});popupWindow.setContentView(mMenuView);popupWindow.setWidth(LinearLayout.LayoutParams.MATCH_PARENT);popupWindow.setHeight(LinearLayout.LayoutParams.WRAP_CONTENT);ColorDrawable dw = new ColorDrawable(0x000000);popupWindow.setBackgroundDrawable(dw);popupWindow.setFocusable(true);popupWindow.setOutsideTouchable(true);popupWindow.setAnimationStyle(R.style.picker_view_slide_anim);// 設(shè)置popupWindow取消的點(diǎn)擊事件,即popupWindow消失后,屏幕的透明度,全透明,就回復(fù)原狀態(tài)popupWindow.setOnDismissListener(new PopupWindow.OnDismissListener() {@Overridepublic void onDismiss() {WindowUtil.backgroundAlpha(RegisterShopActivity.this, 1f);}});}

?顯示PopWindow:

private void showPopwindow() {popupWindow.showAtLocation(rlBankInfo,Gravity.BOTTOM | Gravity.CENTER_HORIZONTAL, 0, 0);WindowUtil.backgroundAlpha(this, 0.4f);llDetailAddress.setVisibility(View.VISIBLE);}

?

設(shè)置數(shù)據(jù):

activity.options1.setAdapter(new ArrayWheelAdapter(activity.mOptionsItems1));activity.options1.setCurrentItem(0);

這里我的省,市,區(qū)的數(shù)據(jù)都是服務(wù)器請(qǐng)求獲取的。獲取省數(shù)據(jù)時(shí),需要獲取市的數(shù)據(jù)。獲取市的數(shù)據(jù)后,需要獲取區(qū)的數(shù)據(jù)。每次滑動(dòng)省,市時(shí),需要獲取數(shù)據(jù)。

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

總結(jié)

以上是生活随笔為你收集整理的Android 省,市,区选择权的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。