我正在使用https://github.com/prolificinteractive/material-calendarview

现在,它可以通过单击向右或向左箭头来更改月份
我如何直接更改年份而不是更改月份。
这可能是android默认的日历 View 吗?
以下是我的多人互动代码-日历

public class ActivityCalendar extends AppCompatActivity implements OnDateSelectedListener, OnMonthChangedListener {

    private static final DateFormat FORMATTER = SimpleDateFormat.getDateInstance();
    private MaterialCalendarView widget;
    private String zodiacSign = "";
    private HashMap<String,Integer> hashMapMonth =  new HashMap<>();

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.layout_calendar);
        widget = (MaterialCalendarView)findViewById(R.id.calendarView);
        widget.setOnDateChangedListener(this);
        widget.setOnMonthChangedListener(this);

    }

    @Override
    public void onDateSelected(@NonNull MaterialCalendarView widget, @Nullable CalendarDay date, boolean selected) {
        String strDate = getSelectedDatesString();
        Intent returnIntent = new Intent();
        returnIntent.putExtra(TagClass.BIRTH_DATE, strDate);
        setResult(Activity.RESULT_OK, returnIntent);
        finish();
    }


    @Override
    public void onMonthChanged(MaterialCalendarView widget, CalendarDay date) {
        //noinspection ConstantConditions

    }

    private String getSelectedDatesString() {
        CalendarDay date = widget.getSelectedDate();
        if (date == null) {
            return "No Selection";
        }
        return FORMATTER.format(date.getDate());
    }
}

布局XML
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    android:orientation="vertical"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context=".ActivityCalendar">


    <com.prolificinteractive.materialcalendarview.MaterialCalendarView
        android:id="@+id/calendarView"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        />


</LinearLayout>

最佳答案

目前该库似乎无法做到这一点。

为了做到这一点,您需要从github下载源代码,并将其作为库模块添加到您的项目中。

然后,我希望至少需要对以下组件进行更改:

  • MaterialCalendarView.java,以在ViewPager.OnPageChangeListener
  • 中更改适配器的命名或用法
  • CalendarPagerAdapter.java,以提供年份而不是月份。

  • 另外,我的印象是,进行这些更改还将导致库中的市长重构。

    关于Android:直接在Material-calendarview中更改Year,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/34547989/

    10-11 15:05
    查看更多