我正在开发一个日历应用程序,这就是我想要做的事情; 例如,我在一个月的不同日期和日历上有各种活动,我想在有活动的日子里添加一个图标(例如音乐会)。如果一天没有活动,那么这一天将没有图标。
注意:我使用CalendarView作为日历用户界面。
这是我想要解释的图像;
http://postimage.org/image/kdejw72nb/
请帮助我在这个特殊日子里添加这些小图标。
提前致谢。
答案 0 :(得分:3)
您必须创建自定义gridView。它可能看起来像这样:
工作日的布局
<GridView
android:id="@+id/weekdays"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:clickable="false"
android:numColumns="7" />
日期的layout.xml
<GridView
android:id="@+id/days"
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:numColumns="7" />
用于显示工作日的java代码
GridView weekdays = (GridView) linearLayout.findViewById(R.id.weekdays);
weekdays.setAdapter(new Weekdays());
public class WeekDays extends BaseAdapter {
String[] weekdays = null;
public WeekDayAdapter() {
DateFormatSymbols dateFormatSymbols= new DateFormatSymbols();
weekdays = = dateFormatSymbols.getShortWeekdays();
}
public int getCount() {
return 7;
}
public Object getItem(int position) {
return weekdays[position];
}
public long getItemId(int position) {
return GridView.INVALID_ROW_ID;
}
public View getView(int position, View convertView, ViewGroup parent) {
View view = null;
view = new LinearLayout(parent.getContext());
view.setLayoutParams(new GridView.LayoutParams(LayoutParams.MATCH_PARENT, LayoutParams.MATCH_PARENT));
view.setOrientation(Horizontal);
LinearLayout linearLayout = new LinearLayout(parent.getContext());
linearLayout.setOrientation(Vertical);
TextView weekDays = new TextView(parent.getContext());
weekDays.setText(weekdays[position + 1]);
linearLayout.addView(weekDays);
view.addView(linearLayout);
return view;
}
}
你可以做类似的事情来设定一个月的日子。随意提出任何问题。
答案 1 :(得分:1)
另一种方法是使用CalendarProvider。你可以参考这个:http://developer.android.com/guide/topics/providers/calendar-provider.html