1. 程式人生 > >城市選擇器(仿照美團)

城市選擇器(仿照美團)


CitySelect

仿照美團地址選擇器

依賴庫

build.gradle 用於打包aar

def SDK_BASENAME = "TestSdk";
def SDK_VERSION = "_V1.0";
def sdkDestinationPath = "build";
def zipFile = file('build/intermediates/bundles/default/classes.jar')

task deleteBuild(type: Delete) {
    delete sdkDestinationPath + SDK_BASENAME + SDK_VERSION
+ ".jar" } task makeJar(type: Jar) { from zipTree(zipFile) from fileTree(dir: 'src/main',includes: ['assets/**'])//將assets目錄打入jar包 baseName = SDK_BASENAME + SDK_VERSION destinationDir = file(sdkDestinationPath) } makeJar.dependsOn(deleteBuild, build)

在專案中使用

第一種方式:Activity

第一種方式不是很方便,應該是不是很靈活,用的是啟動跳轉到庫裡的activity:com.gavin.city.citylibrary.CityPickerActivity 這個方式,我們需要在AndroidMenifest.xml中對Activity進行註冊

  <activity android:name="com.gavin.city.citylibrary.CityPickerActivity"/>

 在程式碼中的點選事件中跳轉

  Intent intent = new Intent(MainActivity.this, CityPickerActivity.class);
                intent.putExtra("city","深圳市");
                startActivityForResult(intent,REQUEST_CODE_PICK_CITY);

 註釋:因為本庫相對於別的類似的庫去掉了定位功能,減少包的大小,但前位置需要使用者自己傳入 intent.putExtra("city","深圳市");

返回:選中所選的地方庫裡的操作city是返回的所選城市

 Intent data = new Intent();
        data.putExtra(KEY_PICKED_CITY, city);
        setResult(RESULT_OK, data);
        finish();

第er種方式:fragment

相對於Activity,fragment是比較方便點,看個人喜好吧