安卓日历开发需要用到系统自带的Calendar类,通过该类可以获取当前时间、日期、月份等信息。
首先,在AndroidManifest.xml文件中添加如下权限:
```xml
```
然后,在layout文件夹中创建自定义的calendar.xml布局文件,用于显示日历。布局文件可以根据需求自由设计,这里仅列出基本代码:
```xml
android:id="@+id/gridView_calendar" android:numColumns="7" android:gravity="center" android:layout_width="match_parent" android:layout_height="wrap_content" android:stretchMode="columnWidth" android:background="@android:color/white" android:horizontalSpacing="1dp" android:verticalSpacing="1dp" /> ``` 接着,在Activity中通过Calendar类获取当前日期,并显示在日历中。具体代码如下: ```java GridView gridView_calendar = findViewById(R.id.gridView_calendar); ArrayList Calendar now = Calendar.getInstance(); int year = now.get(Calendar.YEAR); int month = now.get(Calendar.MONTH) + 1; // 注意要加1 int day = now.get(Calendar.DAY_OF_MONTH); int firstDayOfWeek = now.get(Calendar.DAY_OF_WEEK); int lastDay = now.getActualMaximum(Calendar.DAY_OF_MONTH); for (int i = 1; i < firstDayOfWeek; i++) { dataList.add(""); } for (int i = 1; i <= lastDay; i++) { dataList.add(i + ""); } CalendarAdapter adapter = new CalendarAdapter(this, dataList, year, month, day); gridView_calendar.setAdapter(adapter); ``` 其中,CalendarAdapter为自定义适配器,用于将数据绑定到日历的每个单元格中。具体代码如下: ```java public class CalendarAdapter extends BaseAdapter { private final Context mContext; private final ArrayList private final int mYear; private final int mMonth; private final int mDay; public CalendarAdapter(Context context, ArrayList mContext = context; mDataList = dataList; mYear = year; mMonth = month; mDay = day; } @Override public int getCount() { return mDataList.size(); } @Override public Object getItem(int position) { return mDataList.get(position); } @Override public long getItemId(int position) { return position; } @Override public View getView(int position, View convertView, ViewGroup parent) { View view; if (convertView == null) { view = LayoutInflater.from(mContext).inflate(R.layout.grid_item_calendar, parent, false); } else { view = convertView; } TextView textView = view.findViewById(R.id.textView_day); String day = mDataList.get(position); if (!TextUtils.isEmpty(day)) { textView.setText(day); if (mYear == Calendar.getInstance().get(Calendar.YEAR) && mMonth == Calendar.getInstance().get(Calendar.MONTH) + 1 && Integer.parseInt(day) == mDay) { textView.setTextColor(Color.RED); // 当天字体设置为红色 } else { textView.setTextColor(Color.BLACK); // 其他日期字体设置为黑色 } } else { textView.setText(""); } return view; } } ``` 最后,在drawable文件夹中创建选择器selector_calendar.xml,用于设置日历的背景颜色及选中状态。具体代码如下: ```xml ``` 至此,安卓日历的开发就完成了。通过以上代码实现,我们可以轻松地显示出一个可以切换月份并显示当前日期的日历。