自定义Android calendarView

san*_*ttt 24 android android-custom-view calendarview

我正在寻找一个可以在这样的对话框中使用的CalendarView:

我计划使用android.widget.CalendarView但它可以从API级别11获得.考虑到仍有很多用户使用android 2.3.3(但不是主要的用户可以放弃那些用户)这是一个问题.

我应该使用以下哪个选项?

1)可用的库并相应地使用它们.

2)定制android.widget.CalendarView

如果是#2,那么它有什么例子吗?

Jit*_*yay 51

您好,访问所有给定的链接,希望对您有所帮助

1. https://github.com/inteist/android-better-time-picker

2. https://github.com/derekbrameyer/android-betterpickers

3. http://www.androiddevelopersolutions.com/2013/05/android-calendar-sync.html

4. http://www.androidviews.net/2013/04/extendedcalendarview/

5. http://abinashandroid.wordpress.com/2013/07/21/how-to-create-custom-calendar-in-android/

6. http://w2davids.wordpress.com/android-simple-calendar/

7. https://github.com/roomorama/Caldroid

8. https://github.com/flavienlaurent/datetimepicker

什么时候去参观

https://github.com/derekbrameyer/android-betterpickers

有关此项目的工作实现,请参阅示例/文件夹.

实现适当的Handler回调:

public class MyActivity extends Activity implements DatePickerDialogFragment.DatePickerDialogHandler {

  @Override
  public void onCreate(Bundle savedInstanceState) {
    // ...
  }

  @Override
  public void onDialogDateSet(int year, int monthOfYear, int dayOfMonth) {
    // Do something with your date!
  }
}
Run Code Online (Sandbox Code Playgroud)

使用其中一个Builder类创建一个带主题的PickerDialog:

DatePickerBuilder dpb = new DatePickerBuilder()
    .setFragmentManager(getSupportFragmentManager())
    .setStyleResId(R.style.BetterPickersDialogFragment);
dpb.show();
Run Code Online (Sandbox Code Playgroud)

还有另一个例子,你可以访问

https://github.com/roomorama/Caldroid

并使用如下

要在您的活动中嵌入caldroid片段,请使用以下代码:

CaldroidFragment caldroidFragment = new CaldroidFragment();
Bundle args = new Bundle();
Calendar cal = Calendar.getInstance();
args.putInt(CaldroidFragment.MONTH, cal.get(Calendar.MONTH) + 1);
args.putInt(CaldroidFragment.YEAR, cal.get(Calendar.YEAR));
caldroidFragment.setArguments(args);

FragmentTransaction t = getSupportFragmentManager().beginTransaction();
t.replace(R.id.calendar1, caldroidFragment);
t.commit();
Run Code Online (Sandbox Code Playgroud)