Andorid 달력 컨트롤 라 이브 러 리,좌우 로 미 끄 러 지 며 달력,음력,공휴일 등 기능 표시
demo 효과 도
원본 디 렉 터 리 구조
Features
달력 좌우 로 미 끄 러 집 니 다.
양력,음력,공휴일,24 절기
4.567917.특정한 달 날짜 에 대한 단일 선택 또는 다 중 선택 을 실현 한다.4.567918.
사용 절차
Gradle Dependency
Add the library to your project build.gradle
compile 'com.joybar.calendar:librarycalendar:1.0.4'
Sample Usage
OnPageChangeListener 와 OnDateClickListener 인 터 페 이 스 를 실현 하고 다 중 선택 을 실현 하려 면 OnDateCenselListener 가 필요 합 니 다.
public class MainActivity extends AppCompatActivity implements
CalendarViewPagerFragment.OnPageChangeListener,
CalendarViewFragment.OnDateClickListener,
CalendarViewFragment.OnDateCancelListener {
private TextView tv_date;
private boolean isChoiceModelSingle = false;
private List<CalendarDate> mListDate = new ArrayList<>();
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
tv_date = (TextView) findViewById(R.id.tv_date);
initFragment();
}
private void initFragment(){
FragmentManager fm = getSupportFragmentManager();
FragmentTransaction tx = fm.beginTransaction();
// Fragment fragment = new CalendarViewPagerFragment();
Fragment fragment = CalendarViewPagerFragment.newInstance(isChoiceModelSingle);
tx.replace(R.id.fl_content, fragment);
tx.commit();
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.menu_im, menu);
return true;
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()) {
case R.id.menu_single:
isChoiceModelSingle = true;
initFragment();
break;
case R.id.menu_multi:
isChoiceModelSingle = false;
initFragment();
break;
default:
break;
}
return true;
}
@Override
public void OnDateClick(CalendarDate calendarDate) {
int year = calendarDate.getSolar().solarYear;
int month = calendarDate.getSolar().solarMonth;
int day = calendarDate.getSolar().solarDay;
if (isChoiceModelSingle) {
tv_date.setText(year + "-" + month + "-" + day);
} else {
//System.out.println(calendarDate.getSolar().solarDay);
mListDate.add(calendarDate);
tv_date.setText(listToString(mListDate));
}
}
@Override
public void OnDateCancel(CalendarDate calendarDate) {
int count = mListDate.size();
for (int i = 0; i < count; i++) {
CalendarDate date = mListDate.get(i);
if (date.getSolar().solarDay == calendarDate.getSolar().solarDay) {
mListDate.remove(i);
break;
}
}
tv_date.setText(listToString(mListDate));
}
@Override
public void OnPageChange(int year, int month) {
tv_date.setText(year + "-" + month);
mListDate.clear();
}
private static String listToString(List<CalendarDate> list) {
StringBuffer stringBuffer = new StringBuffer();
for (CalendarDate date : list) {
stringBuffer.append(date.getSolar().solarYear + "-" + date.getSolar().solarMonth + "-" + date.getSolar().solarDay).append(" ");
}
return stringBuffer.toString();
}
}
단일 선택 또는 다 중 선택 실현 코드
if (isChoiceModelSingle) {
mGridView.setChoiceMode(GridView.CHOICE_MODE_SINGLE);
} else {
mGridView.setChoiceMode(GridView.CHOICE_MODE_MULTIPLE);
}
mGridView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
CalendarDate calendarDate = ((CalendarGridViewAdapter) mGridView.getAdapter()).getListData().get(position);
if (isChoiceModelSingle) {
//
if (finalMListDataCalendar.get(position).isInThisMonth()) {
onDateClickListener.OnDateClick(calendarDate);
} else {
mGridView.setItemChecked(position, false);
}
} else {
//
if (finalMListDataCalendar.get(position).isInThisMonth()) {
// mGridView.getCheckedItemIds()
if(!mGridView.isItemChecked(position)){
onDateCancelListener.OnDateCancel(calendarDate);
} else {
onDateClickListener.OnDateClick(calendarDate);
}
} else {
mGridView.setItemChecked(position, false);
}
}
}
});
git 주소:https://github.com/myjoybar/android-calendar-view이상 은 안 드 로 이 드 달력 컨트롤 의 자료 정리 입 니 다.추 후 관련 자 료 를 계속 보충 하 겠 습 니 다.본 사이트 에 대한 지원 에 감 사 드 립 니 다!
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Android Studio 및 Git Hub 공동 작업 방법(로컬 웨어하우스 제작→원격 웨어하우스로 밀어냄)전제 조건 클라이언트 · Giit 설치(Giit 명령 사용 가능) 참고: ※ Windows 환경용 · 안드로이드 스튜디오 설치 참조: 기타 환경 · Giit Hib 계정 생성 • Giit Hub에 객체가 이미 만들어...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.