- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我正在使用 Android Times Square用于可自定义的 CalendarView。我想突出显示两组不同颜色的日期。现在我可以在 xml 中使用以下代码仅用一种颜色突出显示两个集合中的日期
<color name="calendar_highlighted_day_bg">#00A593</color>
日历类
List<DateTime> set1 = new List<DateTime>{date1, date2, date3};
List<DateTime> set2 = new List<DateTime>{date4, date5, date6};
calendarView.HighlightDates(set1);
calendarView.HighlightDates(set2);
如何为 set2 应用不同的颜色突出显示?
感谢任何帮助。
最佳答案
使用下面的代码
在主 Activity 中
GridView grid;
ImageView left,right;
TextView mon,yr;
MyCalendarAdapter adapter2;
ArrayList<String> weeks = new ArrayList<>();
ArrayList<Integer> calendars = new ArrayList<>();
String[] months= {"JANUARY","FEBRUARY","MARCH","APRIL","MAY","JUNE","JULY","AUGUST","SEPTEMBER","OCTOBER",
"NOVEMBER","DECEMBER"};
private int month,year;
Date d;
Calendar c;
private String dayOfTheWeek;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_attendance);
empId = getIntent().getExtras().getString("EmpID");
weeks.add("SUN");
weeks.add("MON");
weeks.add("TUE");
weeks.add("WED");
weeks.add("THU");
weeks.add("FRI");
weeks.add("SAT");
// add day of month you want to highlight
calendars.add(5);
calendars.add(10);
calendars.add(25);
grid = findViewById(R.id.grid);
left = findViewById(R.id.left);
right = findViewById(R.id.right);
mon = findViewById(R.id.mon);
yr = findViewById(R.id.yr);
c = Calendar.getInstance();
month = c.get(Calendar.MONTH);
year = c.get(Calendar.YEAR);
final SimpleDateFormat sdf = new SimpleDateFormat("EEE");
d = new Date();
d.setDate(1);
dayOfTheWeek = sdf.format(d).toUpperCase();
Log.d("FIRSTDAY",""+dayOfTheWeek);
getAttendance(String.valueOf(year), String.format("%02d",(month+1)));
adapter2= new MyCalendarAdapter(c,weeks.indexOf(dayOfTheWeek),calendars);
grid.setAdapter(adapter2);
mon.setText(months[month]);
yr.setText(""+year);
left.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
calendars.clear();
if(month==0)
{
month=11;
year--;
}
else {
month--;
}
d.setMonth(month);
d.setYear(year);
c.set(Calendar.MONTH,month);
c.set(Calendar.YEAR,year);
mon.setText(months[month]);
yr.setText(""+year);
dayOfTheWeek = sdf.format(d).toUpperCase();
Log.d("FIRSTDAY",""+dayOfTheWeek);
int w= weeks.indexOf(dayOfTheWeek);
if(w==0)
{
adapter2= new MyCalendarAdapter(c,6,calendars);
}
else {
adapter2= new MyCalendarAdapter(c,w-1,calendars);
}
grid.setAdapter(adapter2);
getAttendance(String.valueOf(year), String.format("%02d",(month+1)));
}
});
right.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
calendars.clear();
if(month==11)
{
month=0;
year++;
}
else {
month++;
}
d.setMonth(month);
d.setYear(year);
c.set(Calendar.MONTH,month);
c.set(Calendar.YEAR,year);
mon.setText(months[month]);
yr.setText(""+year);
dayOfTheWeek = sdf.format(d).toUpperCase();
Log.d("FIRSTDAY",""+dayOfTheWeek);
int w= weeks.indexOf(dayOfTheWeek);
if(w==0)
{
adapter2= new MyCalendarAdapter(c,6,calendars);
}
else {
adapter2= new MyCalendarAdapter(c,w-1,calendars);
}
grid.setAdapter(adapter2);
getAttendance(String.valueOf(year),String.format("%02d",(month+1)));
}
});
}
activity_main.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
android:background="@drawable/app_bg"
<LinearLayout
android:paddingTop="@dimen/_8sdp"
android:paddingBottom="@dimen/_40sdp"
android:paddingRight="@dimen/_14sdp"
android:paddingLeft="@dimen/_16sdp"
android:background="@drawable/calendar_bg"
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="wrap_content"
>
<LinearLayout
android:background="@color/colorPrimary"
android:gravity="center"
android:orientation="horizontal"
android:layout_width="match_parent"
android:layout_height="@dimen/_40sdp"
>
<ImageView
android:id="@+id/left"
android:padding="@dimen/_8sdp"
android:src="@drawable/left"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
<LinearLayout
android:gravity="center"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_weight="1"
android:orientation="horizontal">
<com.sixsquare.sams.utils.CalendarText
android:paddingRight="@dimen/_5sdp"
android:id="@+id/mon"
android:gravity="center_vertical|right"
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:textColor="@color/white"
android:textSize="@dimen/_14sdp"
android:textStyle="bold"
android:text=""/>
<com.sixsquare.sams.utils.CalendarText
android:paddingLeft="@dimen/_5sdp"
android:id="@+id/yr"
android:gravity="center_vertical"
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:textColor="@color/white"
android:textSize="@dimen/_14sdp"
android:textStyle="bold"
android:text=""/>
</LinearLayout>
<ImageView
android:id="@+id/right"
android:padding="@dimen/_8sdp"
android:src="@drawable/right"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
</LinearLayout>
<LinearLayout
android:paddingTop="@dimen/_5sdp"
android:orientation="horizontal"
android:layout_width="match_parent"
android:layout_height="wrap_content"
>
<com.sixsquare.sams.utils.CalendarText
android:gravity="center"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_weight="1"
android:textColor="@color/blue"
android:textSize="@dimen/_14sdp"
android:textStyle="bold"
android:text="SUN"/>
<com.sixsquare.sams.utils.CalendarText
android:gravity="center"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_weight="1"
android:textColor="@color/blue"
android:textSize="@dimen/_14sdp"
android:textStyle="bold"
android:text="MON"/>
<com.sixsquare.sams.utils.CalendarText
android:gravity="center"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_weight="1"
android:textColor="@color/blue"
android:textSize="@dimen/_14sdp"
android:textStyle="bold"
android:text="TUE"/>
<com.sixsquare.sams.utils.CalendarText
android:gravity="center"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_weight="1"
android:textColor="@color/blue"
android:textSize="@dimen/_14sdp"
android:textStyle="bold"
android:text="WED"/>
<com.sixsquare.sams.utils.CalendarText
android:gravity="center"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_weight="1"
android:textColor="@color/blue"
android:textSize="@dimen/_14sdp"
android:textStyle="bold"
android:text="THU"/>
<com.sixsquare.sams.utils.CalendarText
android:gravity="center"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_weight="1"
android:textColor="@color/blue"
android:textSize="@dimen/_14sdp"
android:textStyle="bold"
android:text="FRI"/>
<com.sixsquare.sams.utils.CalendarText
android:gravity="center"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_weight="1"
android:textColor="@color/blue"
android:textSize="@dimen/_14sdp"
android:textStyle="bold"
android:text="SAT"/>
</LinearLayout>
<GridView
android:padding="@dimen/_5sdp"
android:id="@+id/grid"
android:numColumns="7"
android:layout_weight="1"
android:layout_width="match_parent"
android:layout_height="match_parent"></GridView>
<!--<android.support.v4.view.ViewPager-->
<!--android:id="@+id/pager"-->
<!--android:layout_width="match_parent"-->
<!--android:layout_height="match_parent"-->
<!--android:layout_weight="1"></android.support.v4.view.ViewPager>-->
</LinearLayout>
Create class MyCalendarAdapter
import android.content.Context;
import android.graphics.Typeface;
import android.util.Log;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.TextView;
import com.sixsquare.sams.R;
import java.util.ArrayList;
import java.util.Calendar;
public class MyCalendarAdapter extends BaseAdapter {
Calendar c;
ArrayList<Integer> calendars;
int ct;
public MyCalendarAdapter(Calendar c,int ct,ArrayList<Integer> calendars) {
this.c = c;
this.ct= ct;
this.calendars= calendars;
Log.d("FIRSTDAY",""+ct);
}
@Override
public int getCount() {
int x=getMonthDays(c.get(Calendar.MONTH)+1,c.get(Calendar.YEAR))+ct;
// Log.d("FIRSTDAY",""+x);
return x;
}
@Override
public Object getItem(int position) {
return c;
}
@Override
public long getItemId(int position) {
return position;
}
@Override
public View getView(int p, View convertView, ViewGroup parent) {
LayoutInflater mLayoutInflater = (LayoutInflater) parent.getContext().getSystemService(Context.LAYOUT_INFLATER_SERVICE);
View v = mLayoutInflater.inflate(R.layout.my_calendar, parent, false);
TextView text = v.findViewById(R.id.text);
text.setTypeface(Typeface.createFromAsset(parent.getContext().getAssets(),
"fonts/fontastique.ttf"));
int position= p+1-ct;
if(position>0) {
text.setText("" + position);
if(calendars.contains(position))
{
text.setTextColor(parent.getResources().getColor(R.color.white));
text.setBackgroundResource(R.drawable.circular_shape);
}
}
return v;
}
public static int getMonthDays(int month, int year) {
int daysInMonth ;
if (month == 4 || month == 6 || month == 9 || month == 11) {
daysInMonth = 30;
}
else {
if (month == 2) {
daysInMonth = (year % 4 == 0) ? 29 : 28;
} else {
daysInMonth = 31;
}
}
// Log.d("FIRSTDAY","days "+daysInMonth);
return daysInMonth;
}
}
我的日历.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:gravity="center"
android:padding="@dimen/_3sdp"
android:layout_width="match_parent"
android:layout_height="wrap_content">
<TextView
android:id="@+id/text"
android:textSize="@dimen/_14sdp"
android:gravity="center"
android:textStyle="bold"
android:textColor="@color/black"
android:layout_width="@dimen/_32sdp"
android:layout_height="@dimen/_32sdp"/>
</LinearLayout>
关于android - 动态设置单元格高亮颜色Android Times Square CalendarView,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39158967/
我一直在努力学习 TensorFlow,我注意到不同的函数用于相同的目标。例如,为了平方变量,我看到了 tf.square()、tf.math.square() 和 tf.keras.backend.
我正在创建一个应用程序,我需要在其中显示平方根符号和数字。例如 /¯¯¯¯¯¯¯¯¯¯¯ \/ (v^2) / T 我也希望显示数字的平方。任何人都可以帮助显示此类文本。此文本来自数据库并且可以
我自己无法解决以下问题,所以我搜索并找到了一个可行的算法。有人可以向我解释该算法背后的思维过程、数学或其他内容吗? 类型:https://www.codewars.com/kata/square-in
是否可以使用 Square Connect API 访问有关商家客户的任何信息?最理想的信息是客户为收据输入的电子邮件地址,但某些类型的唯一客户 ID 可以很好地确定回头客。 查看 Square Co
已关闭。此问题需要 debugging details 。目前不接受答案。 编辑问题以包含 desired behavior, a specific problem or error, and the
我正在尝试使用 Font Awesome 堆叠来实现这一点 我试过两种方法,但都很丑。问题是 fa-square 和 fa-square-o 大小不同,所以当你堆叠它们时,它们不会对齐! my fid
这个惊人的code golf answer to 这个数字是 Loeschian 吗?整体而言: Python, 49 bytes lambda n:0in[(n-3*i*i+0j)**.5%1for
这个问题在这里已经有了答案: Is floating point math broken? (31 个回答) 去年关闭。 #include #include using namespace std
我有一个名为Complex的类,它具有实数和虚数的访问器方法,以及将复数表示为字符串的方法和获取复数大小的方法。我在实现最后三个方法 square()(对复数求平方)、modulusSquared()
有没有办法使用 Square Connect API 获取通过网络钩子(Hook)发送的付款 ID 并找到关联的订单 ID? 我发现文档中列出的付款对象 (https://docs.connect.s
你可以有一个父类(super class) Shape,Square 和 Rectangle 是两个子类,但是你可以有 Square 子类 Rectangle,因为 Square 是一个四边相等的特殊
我正在尝试在 Google Search Console 中为 Weebly/Square 网站使用 PageSpeed Insights 并收到错误消息: 灯塔返回错误:NOT_HTML。提供的页面
我有一个包含 A 列和 B 列的数据框。我想创建第三列,它是两列平方和的平方根。 以下是我的示例数据: A B 10 7 10 8 9 8 10 11 13 5 3 0 12 8
给定以下二维点: 213 106.8 214 189 214 293.4 213 324 223 414 我想找到穿过它们的最小二乘垂直轴线的方程。我的计划是得到一个线方程,这样我就可以测试后续点到最
我的 WPF 项目中有一个 UniformGrid 对象,它有 2 行和 3 列,其宽度和高度设置为自动(两个对齐方式都设置为拉伸(stretch))。 这个网格将容纳 6 个正方形,我想尽可能多地填
我发布此问题是因为,我的代码没有在正确的位置停止迭代。谁能让我确定哪里出了问题? 一切工作正常(我一直认为这是现实中的错误。) 问题: 1)在每次迭代中,我都在最小化不幸的是,它没有正确地最小化(非常
“方 block ” 输入 : 棋盘大小 m × n (m, n ∈ {1,...,32}),三元组列表 (i, j, k) , 其中 i ∈ {1,...,m}, j ∈ {1,...,n}, k
我正在尝试为 Square Connect API 开发一个包装器。我正在寻找沙盒帐户或将测试数据导入新帐户的方法,以便我可以快速开始开发方面的工作。 谢谢! 最佳答案 为了供从 Google 登陆这
我有一个任务,我发现它非常困难。任何帮助将不胜感激。 通过创建 Shape 类 Circle、Square 和 Triangle 来构建层次结构。对于这些派生类,创建默认构造函数和构造函数,其参数可以
题目地址: https://leetcode.com/problems/maximal-square/description/ 题目描述 Given a 2D binary matrix fill
我是一名优秀的程序员,十分优秀!