Android地址選擇器,解決Gradle引入不了CityPicker依賴的問題


因刪除了gitee圖床,圖片不能正常顯示,詳細查看github源碼

1. 概述

解決Gradle下載不了CityPicker依賴的問題

citypicker源碼github地址:crazyandcoder/citypicker

2. 實現效果

img

3. 實現方法

(1)環境配置

  • 在setting.gradle文件中配置jitpack的maven地址
maven {url 'https://jitpack.io'}

image-20220310184208003

  • 選擇官方最新版本的依賴
implementation 'com.github.crazyandcoder:citypicker:6.0.2'

在app的build.gradle文件的dependencies部分引入

image-20220310183926029

  • 在AndroidManifest.xml文件中添加tools替換掉citypicker中沖突的部分
xmlns:tools="http://schemas.android.com/tools"
        tools:replace="android:theme"

image-20220310201401610

(2)代碼實現

新版本的citypicker與低版本的用法有些許差別,因為在類名和方法名上有所不同

layout部分
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical"
    tools:context=".MainActivity">
    
    <TextView
        android:id="@+id/item_city"
        android:layout_width="match_parent"
        android:layout_height="45dp"
        android:gravity="center"
        android:text="請選擇地址"
        android:textSize="18sp"
        android:textStyle="bold"/>

</LinearLayout>
java部分
import androidx.appcompat.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.TextView;
import com.lljjcoder.Interface.OnCityItemClickListener;
import com.lljjcoder.bean.CityBean;
import com.lljjcoder.bean.DistrictBean;
import com.lljjcoder.bean.ProvinceBean;
import com.lljjcoder.citywheel.CityConfig;
import com.lljjcoder.style.citypickerview.CityPickerView;


public class MainActivity extends AppCompatActivity {

    // 創建CityPicker對象,有別於低版本的CityPicker
    CityPickerView mPicker=new CityPickerView();
    private TextView cityText;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        mPicker.init(this); // 預先加載全部數據,必須執行
        cityText=findViewById(R.id.item_city); // 找到頁面上的item_city組件
        cityText.setOnClickListener(new View.OnClickListener() { // 設置TextView組件的點擊監聽
            @Override
            public void onClick(View view) {
                initCityPicker(); // 初始化CityPicker
                mPicker.showCityPicker(); // 展示CityPicker
            }
        });
    }

    public void initCityPicker() {
        CityConfig cityConfig = new CityConfig.Builder().build(); // 采用默認配置,詳細屬性配置在下面
        mPicker.setConfig(cityConfig); // CityPicker設置配置屬性

        mPicker.setOnCityItemClickListener(new OnCityItemClickListener() { // CityPicker設置點擊事件監聽
            // 成功選擇信息后執行該方法
            @Override
            public void onSelected(ProvinceBean province, CityBean city, DistrictBean district) {
                // 省份province,城市city,地區district   
                
                // 給TextView組件添加所選擇的地址信息
                cityText.setText(String.format("%s %s %s", province, city, district));
            } 
            // 點取消時執行該方法
            @Override
            public void onCancel() {} 
        });
    }
}

(3)補充部分

CityConfig詳細屬性信息,可以自定義

        CityConfig cityConfig = new CityConfig.Builder()
                .title("選擇城市")//標題
                .titleTextSize(18)//標題文字大小
                .titleTextColor("#585858")//標題文字顏  色
                .titleBackgroundColor("#E9E9E9")//標題欄背景色
                .confirTextColor("#585858")//確認按鈕文字顏色
                .confirmText("ok")//確認按鈕文字
                .confirmTextSize(16)//確認按鈕文字大小
                .cancelTextColor("#585858")//取消按鈕文字顏色
                .cancelText("cancel")//取消按鈕文字
                .cancelTextSize(16)//取消按鈕文字大小
                .setCityWheelType(CityConfig.WheelType.PRO_CITY_DIS)//顯示類,只顯示省份一級,顯示省市兩級還是顯示省市區三級
                .showBackground(true)//是否顯示半透明背景
                .visibleItemsCount(7)//顯示item的數量
                .province("浙江省")//默認顯示的省份
                .city("杭州市")//默認顯示省份下面的城市
                .district("濱江區")//默認顯示省市下面的區縣數據
                .provinceCyclic(true)//省份滾輪是否可以循環滾動
                .cityCyclic(true)//城市滾輪是否可以循環滾動
                .districtCyclic(true)//區縣滾輪是否循環滾動
                .setCustomItemTextViewId(R.id.item_city)//自定義item布局里面的textViewid
                .drawShadows(false)//滾輪不顯示模糊效果
                .setLineColor("#03a9f4")//中間橫線的顏色
                .setLineHeigh(5)//中間橫線的高度
                .setShowGAT(true)//是否顯示港澳台數據,默認不顯示
                .build();


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM