文章目录
PickerView
依赖
compile ‘com.contrarywind:Android-PickerView:4.1.9’
官网
https://github.com/Bigkoo/Android-PickerView
详细代码
public class MainActivity extends AppCompatActivity {
@BindView(R.id.timePicker)
public Button timerPicker;
@BindView(R.id.selectPicker)
public Button selectPicker;
private List<String> options1;
private List<Bean> beans;
List<String> shengName;
List<List<String>> citys;
List<List<List<String>>> areas;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
ButterKnife.bind(this);
init();
}
@OnClick({R.id.timePicker,R.id.selectPicker})
public void showPicker(View view){
switch (view.getId()){
case R.id.timePicker:
showTimerPicker();
break;
case R.id.selectPicker:
showOptionsPicker();
break;
}
}
public void showTimerPicker(){
Log.d("amy", "showTimerPicker: ");
TimePickerView pickerView = new TimePickerBuilder(this, new OnTimeSelectListener() {
@Override
public void onTimeSelect(Date date, View v) {
Toast.makeText(MainActivity.this, "显示时间", Toast.LENGTH_SHORT).show();
}
})
.setType(new boolean[]{true, true, true, true, true, true})// 默认全部显示
.setCancelText("Cancel")//取消按钮文字
.setSubmitText("Sure")//确认按钮文字
.build();
pickerView.show();
}
public void showOptionsPicker(){
OptionsPickerView<String> pickerView = new OptionsPickerBuilder(this, new OnOptionsSelectListener() {
@Override
public void onOptionsSelect(int options1, int options2, int options3, View v) {
Log.d("amy", "onOptionsSelect: "+options1+"-"+options2+"-"+options3);
}
})
.isDialog(true)
.build();
pickerView.setPicker(shengName,citys,areas);
pickerView.show();
}
/**
* 初始化数据
*/
public void init(){
Gson gson = new Gson();
beans = gson.fromJson(readJson(),new TypeToken<List<Bean>>(){}.getType());
shengName = new ArrayList<>();
citys = new ArrayList<>();
areas = new ArrayList<>();
for(Bean bean:beans){
shengName.add(bean.getName());
List<String> city = new ArrayList<>();
List<List<String>> area = new ArrayList<>();
for(Bean.CityBean cityBean : bean.getCity()){
city.add(cityBean.getName());
area.add(cityBean.getArea());
}
citys.add(city);
areas.add(area);
}
}
/**
* 读取json文件
* @return
*/
public String readJson(){
StringBuffer stringBuffer = new StringBuffer();
try {
InputStream inputStream = getAssets().open("province.json");
byte[] bytes = new byte[1024];
int len = 0;
while ((len = inputStream.read(bytes)) != -1){
stringBuffer.append(new String(bytes,0,len));
}
} catch (IOException e) {
e.printStackTrace();
}
return stringBuffer.toString();
}
}