안 드 로 이 드 모방 IOS 롤러 선택 컨트롤
여기 먼저 효과 도 를 붙 여 주세요.
일반적으로 자주 사용 하 는 시간 선택 형식,단일 선택,그리고 도시 연동 은 여기 서 대체적으로 만족 할 수 있다.
유 틸 리 티 클래스 에 단일 선택 과 날짜 시간 을 선택 하 십시오.코드 는 다음 과 같 습 니 다.
public class Util {
/**
*
*/
public interface TimerPickerCallBack {
void onTimeSelect(String date);
}
/**
*
*
* @param context
* @param type TimerPickerView
* @param format
* @param callBack
*/
public static void alertTimerPicker(Context context, TimePickerView.Type type, final String format, final TimerPickerCallBack callBack) {
TimePickerView pvTime = new TimePickerView(context, type);
//
// Calendar calendar = Calendar.getInstance();
// pvTime.setRange(calendar.get(Calendar.YEAR) - 20, calendar.get(Calendar.YEAR));
pvTime.setTime(new Date());
pvTime.setCyclic(false);
pvTime.setCancelable(true);
//
pvTime.setOnTimeSelectListener(new TimePickerView.OnTimeSelectListener() {
@Override
public void onTimeSelect(Date date) {
// tvTime.setText(getTime(date));
SimpleDateFormat sdf = new SimpleDateFormat(format);
callBack.onTimeSelect(sdf.format(date));
}
});
pvTime.setTextSize(16);
//
pvTime.show();
}
/**
*
*/
public interface OnWheelViewClick {
void onClick(View view, int postion);
}
/**
*
*
* @param context
* @param list
* @param click
*/
public static void alertBottomWheelOption(Context context, ArrayList<?> list, final OnWheelViewClick click) {
final PopupWindow popupWindow = new PopupWindow();
View view = LayoutInflater.from(context).inflate(R.layout.layout_bottom_wheel_option, null);
TextView tv_confirm = (TextView) view.findViewById(R.id.btnSubmit);
final WheelView wv_option = (WheelView) view.findViewById(R.id.wv_option);
wv_option.setAdapter(new ArrayWheelAdapter(list));
wv_option.setCyclic(false);
wv_option.setTextSize(16);
tv_confirm.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
popupWindow.dismiss();
click.onClick(view, wv_option.getCurrentItem());
}
});
view.findViewById(R.id.btnCancel).setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
// TODO: 2016/8/11 0011
popupWindow.dismiss();
}
});
view.setOnTouchListener(new View.OnTouchListener() {
@Override
public boolean onTouch(View view, MotionEvent motionEvent) {
int top = view.findViewById(R.id.ll_container).getTop();
if (motionEvent.getAction() == MotionEvent.ACTION_UP) {
int y = (int) motionEvent.getY();
if (y < top) {
popupWindow.dismiss();
}
}
return true;
}
});
popupWindow.setContentView(view);
popupWindow.setOutsideTouchable(true);
popupWindow.setFocusable(true);
popupWindow.setBackgroundDrawable(new BitmapDrawable());
popupWindow.setWidth(ViewGroup.LayoutParams.MATCH_PARENT);
popupWindow.setHeight(ViewGroup.LayoutParams.MATCH_PARENT);
popupWindow.showAtLocation(((ViewGroup) ((Activity) context).findViewById(android.R.id.content)).getChildAt(0), Gravity.CENTER, 0, 0);
}
}
•단일 항목 선택Array List 형식의 String 형식 을 모 의 한 것 입 니 다.
//
for (int i = 0; i <= 10; i++) {
mList.add(" " + i);
}
tv_single_option.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Util.alertBottomWheelOption(MainActivity.this, mList, new Util.OnWheelViewClick() {
@Override
public void onClick(View view, int postion) {
Toast.makeText(MainActivity.this, mList.get(postion), Toast.LENGTH_SHORT).show();
}
});
}
});
보충:우리 의 실제 프로젝트 에서 사용 하 는 방법 은 실체 대상 에 전 달 될 수 있 습 니 다.그러면 우 리 는 WheelView 에서 디 스 플레이 내용 을 설정 하 는 방법 을 찾 습 니 다.
/**
* getPickerViewText() ,
* @param item
* @return
*/
private String getContentText(Object item) {
String contentText = item.toString();
try {
Class<?> clz = item.getClass();
Method m = clz.getMethod(GETPICKERVIEWTEXT);
contentText = m.invoke(item, new Object[0]).toString();
} catch (NoSuchMethodException e) {
} catch (InvocationTargetException e) {
} catch (IllegalAccessException e) {
} catch (Exception e){
}
return contentText;
}
상기 코드 에 따 르 면 하나의 실체 대상 이 라면 대상 내부 에서 정 의 된 방법 인 GETPICKERVIEWTEXT(정적 상수="getPickerViewText")의 반환 값 을 통 해 내용 을 표시 합 니 다.따라서 대상 을 만 들 때 대상 내부 에 getPickerViewText()방법 을 추가 하 는 것 을 주의해 야 합 니 다.코드 는 다음 과 같 습 니 다.
public class TypeBean {
private int id;
private String name;
public TypeBean(int id, String name) {
this.id = id;
this.name = name;
}
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
// PickerView ,PickerView getPickerViewText 。
public String getPickerViewText() {
//
return name;
}
}
•날짜 선택선택 한 날짜 형식 과 시간 형식 을 입력 하면 원 하 는 결 과 를 얻 을 수 있 습 니 다.
@Override
public void onClick(View v) {
String format = "";
TimePickerView.Type type = null;
switch (v.getId()) {
case R.id.btn_ymdhm:
type = TimePickerView.Type.ALL;
format = "yyyy-MM-dd HH:mm";
break;
case R.id.btn_ymdh:
type = TimePickerView.Type.YEAR_MONTH_DAY_HOUR;
format = "yyyy-MM-dd HH";
break;
case R.id.btn_ymd:
type = TimePickerView.Type.YEAR_MONTH_DAY;
format = "yyyy-MM-dd";
break;
case R.id.btn_mdhm:
type = TimePickerView.Type.MONTH_DAY_HOUR_MIN;
format = "MM-dd HH:mm";
break;
case R.id.btn_hm:
type = TimePickerView.Type.HOURS_MINS;
format = "HH:mm";
break;
case R.id.btn_ym:
type = TimePickerView.Type.YEAR_MONTH;
format = "yyyy-MM";
break;
}
Util.alertTimerPicker(this, type, format, new Util.TimerPickerCallBack() {
@Override
public void onTimeSelect(String date) {
Toast.makeText(TestActivity.this, date, Toast.LENGTH_SHORT).show();
}
});
}
•조건 선택
private ArrayList<ProvinceBean> options1Items = new ArrayList<ProvinceBean>();
private ArrayList<ArrayList<String>> options2Items = new ArrayList<ArrayList<String>>();
private ArrayList<ArrayList<ArrayList<String>>> options3Items = new ArrayList<ArrayList<ArrayList<String>>>();
OptionsPickerView pvOptions;
private void showOptions(){
//
pvOptions = new OptionsPickerView(this);
//
DataModel.initData(options1Items, options2Items, options3Items);
//
pvOptions.setPicker(options1Items, options2Items, options3Items, true);
//
// pwOptions.setLabels(" ", " ", " ");
pvOptions.setTitle(" ");
pvOptions.setCyclic(false, false, false);
//
//
pvOptions.setSelectOptions(1, 1, 1);
pvOptions.setTextSize(18);
pvOptions.setOnoptionsSelectListener(new OptionsPickerView.OnOptionsSelectListener() {
@Override
public void onOptionsSelect(int options1, int option2, int options3) {
//
String tx = options1Items.get(options1).getPickerViewText()
+ options2Items.get(options1).get(option2)
+ options3Items.get(options1).get(option2).get(options3);
tvOptions.setText(tx);
vMasker.setVisibility(View.GONE);
}
});
//
tvOptions.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
pvOptions.show();
}
});
}
기본적으로 사용 하 는 것 은 이것 뿐 이 고 기술적 인 함량 도 없 으 며 자주 사용 하 는 도구 로 정리 하 는 것 도 여러분 에 게 편 의 를 가 져 다 주 기 를 바 랍 니 다.다운로드 클릭:소스 코드
이상 이 바로 본 고의 모든 내용 입 니 다.여러분 의 학습 에 도움 이 되 고 저 희 를 많이 응원 해 주 셨 으 면 좋 겠 습 니 다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Bitrise에서 배포 어플리케이션 설정 테스트하기이 글은 Bitrise 광고 달력의 23일째 글입니다. 자체 또는 당사 등에서 Bitrise 구축 서비스를 사용합니다. 그나저나 며칠 전 Bitrise User Group Meetup #3에서 아래 슬라이드를 발표했...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.