前兩天在項目中用到了添加地址的功能,想着這個應該網上有現成的輪子可以用,於是就找了一下,找到一個開源的框架Citypickerview,試了一下挺好用的,使用非常方便,分享給大家:github地址:點擊打開鏈接
1.添加依賴:
compile 'liji.library.dev:citypickerview:0.7.0'
2.佈局文件:
非常簡單,就2個TextView來顯示就可以了
<LinearLayout
android:layout_marginTop="50dp"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="地址:"
/>
<TextView
android:id="@+id/address"
android:background="#ff00"
android:textColor="#000"
android:layout_width="match_parent"
android:layout_height="wrap_content" />
</LinearLayout>
3.在自己相應的Activity中使用地址選擇器,我的是在ActivityDemo中,整個ActivityDemo的代碼如下:
package com.example.os.nestedscrollingdemo.view;
import android.graphics.Color;
import android.os.Bundle;
import android.support.annotation.Nullable;
import android.support.v7.app.AppCompatActivity;
import android.view.View;
import android.widget.TextView;
import com.example.os.nestedscrollingdemo.R;
import com.lljjcoder.citypickerview.widget.CityPicker;
/**
* Created by OS on 2018/3/13.
*/
public class ActivityDemo extends AppCompatActivity implements View.OnClickListener {
private TextView mAddress;
/**
* 選取地址
*/
@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main2);
initView();
}
private void initView() {
mAddress = findViewById(R.id.address);
mAddress.setOnClickListener(this);
}
@Override
public void onClick(View v) {
// chooseArea(v);
selectAddress();
}
//Texview的點擊事件
// public void chooseArea(View view) {
// //判斷輸入法的隱藏狀態
// InputMethodManager imm = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE);
// if (imm.isActive()) {
// imm.hideSoftInputFromWindow(view.getWindowToken(),
// InputMethodManager.HIDE_NOT_ALWAYS);
// selectAddress();//調用CityPicker選取區域
// }
// }
private void selectAddress() {
CityPicker cityPicker = new CityPicker.Builder(ActivityDemo.this)
.textSize(14)
.title("地址選擇")
.titleBackgroundColor("#FFFFFF")
// .titleTextColor("#696969")
.confirTextColor("#696969")
.cancelTextColor("#696969")
.province("北京市")
.city("北京市")
.district("朝陽區")
.textColor(Color.parseColor("#000000"))
.provinceCyclic(true)
.cityCyclic(false)
.districtCyclic(false)
.visibleItemsCount(7)
.itemPadding(15)
.onlyShowProvinceAndCity(false)
.build();
cityPicker.show();
//監聽方法,獲取選擇結果
cityPicker.setOnCityItemClickListener(new CityPicker.OnCityItemClickListener() {
@Override
public void onSelected(String... citySelected) {
//省份
String province = citySelected[0];
//城市
String city = citySelected[1];
//區縣(如果設定了兩級聯動,那麼該項返回空)
String district = citySelected[2];
//郵編
String code = citySelected[3];
//爲TextView賦值
mAddress.setText(province.trim()+ city.trim()+ district.trim());
}
});
}
}
4.ok了,上述的代碼就能實現效果了,是不是非常簡單呢。在這裏提一下,我的在上面的設置標題顏色的時候報錯了,所以我註釋掉了,不影響使用。
本文章根據原作者內容改編而來,如有雷同,敬請諒解!
轉載自:http://www.cnblogs.com/panhouye/archive/2017/03/08/6519582.html