day41 pickerview,autoSize的基本使用

pickerView

官网:https://github.com/Bigkoo/Android-PickerView
依赖:implementation ‘com.contrarywind:Android-PickerView:4.1.8’

省市区三级联动(json串从官网获得)

activity

public class MainActivity extends AppCompatActivity implements View.OnClickListener {

    private ArrayList<String> options1Items = new ArrayList<>();
    private ArrayList<ArrayList<String>> options2Items = new ArrayList<>();
    private ArrayList<ArrayList<ArrayList<String>>> options3Items = new ArrayList<>();
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        findViewById(R.id.btn).setOnClickListener(this);
        getData();
    }

    public String getJson(){
        StringBuffer sb = new StringBuffer();
        InputStream open = null;
        try {
            open = getAssets().open("province.json");
            byte[] b = new byte[1024*8];
            int len = 0;
            while ((len = open.read(b)) != -1){
                sb.append(new String(b,0,len));
            }
        } catch (IOException e) {
            e.printStackTrace();
        }finally {
            try {
                open.close();
            } catch (IOException e) {
                e.printStackTrace();
            }
        }
        return sb.toString();
    }

    private void getData() {
        try {
            JSONArray jsonArray = new JSONArray(getJson());
            for (int i = 0; i < jsonArray.length(); i++){
                JSONObject jsonObject = jsonArray.getJSONObject(i);
                String name = jsonObject.getString("name");
                options1Items.add(name);
                JSONArray city = jsonObject.getJSONArray("city");
                ArrayList<String> cityList = new ArrayList<>();//该省的城市列表(第二级)
                ArrayList<ArrayList<String>> province_AreaList = new ArrayList<>();//该省的所有地区列表(第三极)
                for (int j = 0; j <city.length(); j++){
                    JSONObject jsonObject1 = city.getJSONObject(j);
                    String cityName = jsonObject1.getString("name");
                    cityList.add(cityName);
                    JSONArray area = jsonObject1.getJSONArray("area");
                    ArrayList<String> city_AreaList = new ArrayList<>();//该城市的所有地区列表
                    for (int n = 0; n < area.length(); n++){
                        String string = area.getString(n);
                        city_AreaList.add(string);
                    }
                    province_AreaList.add(city_AreaList);
                }
                //添加地区数据
                options3Items.add(province_AreaList);
                //添加城市数据
                options2Items.add(cityList);
            }
        } catch (JSONException e) {
            e.printStackTrace();
        }
    }

    @Override
    public void onClick(View view) {
        if (view.getId() == R.id.btn){
            OptionsPickerView pvOptions = new OptionsPickerBuilder(this, new OnOptionsSelectListener() {
                @Override
                public void onOptionsSelect(int options1, int options2, int options3, View v) {
                    //返回的分别是三个级别的选中位置
                    String opt1tx = options1Items.size() > 0 ?
                            options1Items.get(options1) : "";

                    String opt2tx = options2Items.size() > 0
                            && options2Items.get(options1).size() > 0 ?
                            options2Items.get(options1).get(options2) : "";

                    String opt3tx = options2Items.size() > 0
                            && options3Items.get(options1).size() > 0
                            && options3Items.get(options1).get(options2).size() > 0 ?
                            options3Items.get(options1).get(options2).get(options3) : "";

                    String tx = opt1tx + opt2tx + opt3tx;
                    Toast.makeText(MainActivity.this, tx, Toast.LENGTH_SHORT).show();
                }
            })

                    .setTitleText("城市选择")
                    .setDividerColor(Color.BLACK)
                    .setTextColorCenter(Color.BLACK) //设置选中项文字颜色
                    .setContentTextSize(20)
                    .build();

        /*pvOptions.setPicker(options1Items);//一级选择器
        pvOptions.setPicker(options1Items, options2Items);//二级选择器*/
            pvOptions.setPicker(options1Items, options2Items, options3Items);//三级选择器
            pvOptions.show();
        }
    }
}

autoSize

官网:https://github.com/JessYanCoding/AndroidAutoSize/blob/master/README-zh.md#pixel-2-xl–1440-x-2880–560dpi
依赖: implementation ‘me.jessyan:autosize:1.1.2’

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值