标签: android-calendar

MaterialDatePicker 选择后返回不正确的日期

由于某些未知原因,MaterialDatePicker 在选择后返回不正确的日期。例如,用户位于墨西哥地区,时区为:America/Tijuana。当他在视觉表示中选择:2021-10-05时,在结果文本中我有-1天,2021-10-04。对于 RU 地区,一切正常。这是代码:

public void startDateSelectionPicker() {
    try {
        MaterialDatePicker<Long> picker = MaterialDatePicker.Builder.datePicker()
                .setSelection(MaterialDatePicker.todayInUtcMilliseconds())
                .setTheme(R.style.CustomDatePickerDialog)
                .build();

        picker.addOnPositiveButtonClickListener(selection -> {
            TimeZone t = TimeZone.getDefault();
            Calendar c1 = Calendar.getInstance();
            c1.setTimeInMillis(selection);
            c1.setTimeZone(TimeZone.getDefault());

//here I need to receive correct date, but receiving -1 from originally selected date.

            String date = ToolsManager.calendarToDate(this, c1, "yyyy-MM-dd");
        });
        picker.show(getSupportFragmentManager(), picker.getTag());
    } catch (IllegalArgumentException e) {
    }
}

public static String calendarToDate(Context context, Calendar calendar, String dateFormat) {
        if (calendar == null) {
            return null;
        }

        Locale locale …
Run Code Online (Sandbox Code Playgroud)

timezone android android-calendar java-time materialdatepicker

5
推荐指数
1
解决办法
2363
查看次数

Material Design 3 使用 colorPrimary 作为 actionBar、navBar 和日历背景颜色。我如何禁用此功能?

升级到 Material Design 3 后,我注意到某些东西的背景颜色变成了我的原色设置的褪色版本。例如,如果我将主颜色设置为红色,则导航栏和日历现在有点粉红色。

<style name="AppTheme" parent="Base.AppTheme" />

<style name="Base.AppTheme" parent="Theme.Material3.DayNight.NoActionBar">
    <item name="colorPrimary">@color/red</item>

</style>
Run Code Online (Sandbox Code Playgroud)

我不知道为什么材料设计假设我想要这些背景颜色。我的设计文档需要白色背景,并且无法将主色设置为白色。如果我根本不设置原色,它默认为紫色!

我对导航栏有一些运气,因为你可以设置每个项目的背景颜色,但对日历则没有运气。我尝试过在日历样式上设置所有听起来与颜色相关的内容。到目前为止,除了primaryColor 之外,日历背景没有任何改变。backgroundColor、backgroundTint 等。没有任何效果。有谁知道如何在 Material Design 3 上覆盖这种行为?

我只想将 colorPrimary 设置为绿色,并将 actionBar、navBar 和 calendar 的背景颜色设置为白色。

android android-calendar material-design android-navigationview android-navigation-bar

5
推荐指数
1
解决办法
3066
查看次数

使用AlarmManager将多个pendingIntent调度到同一活动

最近,当我尝试使用AlarmManager计划将来运行的活动时,我注意到了奇怪的行为.查看下面的代码,第一个活动在20秒内启动,而第二个活动不是在40秒内启动,而是在60秒后启动.任何人都可以解释为什么第二个意图没有安排调用第二个活动而不是第三个意图.这是否意味着我只能在AlarmManager中只有一个活动意图.

//pending intent for morning
    Intent myIntent1 = new Intent(this, Activity1.class);
    pendingIntent1 = PendingIntent.getActivity(this, 0, myIntent1, 0);
    AlarmManager alarmManager1 = (AlarmManager)getSystemService(ALARM_SERVICE);
    Calendar calendar1 = Calendar.getInstance();
    //calendar1.set(Calendar.YEAR, Calendar.MONTH + 1, Calendar.DAY_OF_MONTH, morningTime, 0, 0);
    calendar1.setTimeInMillis(System.currentTimeMillis());
    calendar1.add(Calendar.SECOND, 20);
    alarmManager1.set(AlarmManager.RTC_WAKEUP, calendar1.getTimeInMillis(), pendingIntent1);

    //pending intent for noon
    Intent myIntent2 = new Intent(this, Activity2.class);
    pendingIntent2 = PendingIntent.getActivity(this, 0, myIntent2, 0);
    AlarmManager alarmManager2 = (AlarmManager)getSystemService(ALARM_SERVICE);
    Calendar calendar2 = Calendar.getInstance();
    //calendar2.set(Calendar.YEAR, Calendar.MONTH + 1, Calendar.DAY_OF_MONTH, noonTime, 0, 0);
    calendar2.setTimeInMillis(System.currentTimeMillis());
    calendar2.add(Calendar.SECOND, 40);
    alarmManager2.set(AlarmManager.RTC_WAKEUP, calendar2.getTimeInMillis(), pendingIntent2);

    //pending intent for …
Run Code Online (Sandbox Code Playgroud)

android alarmmanager android-intent android-calendar android-pendingintent

4
推荐指数
1
解决办法
3922
查看次数

PhoneGap/Cordova日历集成(Android)

我正在使用PhoneGap(又名Cordova)构建Android应用程序,并且无法使日历集成工作. 免责声明:我是Android和PhoneGap的菜鸟,请耐心等待.

我要做的就是在用户的日历中添加一个事件.在本教程之后,我创建了一个试图启动Calendar Intent的插件.代码如下所示:

public class CalendarPlugin extends Plugin {
public static final String NATIVE_ACTION_STRING="addToCalendar"; 
public static final String SUCCESS_PARAMETER="success"; 

@Override
public PluginResult execute(String action, JSONArray data, String callbackId) {
    if (NATIVE_ACTION_STRING.equals(action)) { 
        Calendar beginTime = Calendar.getInstance();
        beginTime.set(2012, 6, 19, 7, 30);
        Calendar endTime = Calendar.getInstance();
        endTime.set(2012, 6, 19, 8, 30);

        Intent calIntent = new Intent((Context) this.ctx, CalendarPlugin.class)
            .setAction(Intent.ACTION_INSERT)
            .putExtra(Events.TITLE, "A new event")
            .putExtra(CalendarContract.EXTRA_EVENT_ALL_DAY, true)
            .putExtra(CalendarContract.EXTRA_EVENT_BEGIN_TIME, beginTime.getTimeInMillis())
            .putExtra(CalendarContract.EXTRA_EVENT_END_TIME, endTime.getTimeInMillis());

        this.ctx.startActivity(calIntent);
        return new PluginResult(PluginResult.Status.OK, "Smashing success");
    }

return …
Run Code Online (Sandbox Code Playgroud)

android android-intent android-calendar phonegap-plugins cordova

4
推荐指数
1
解决办法
8398
查看次数

获取当前日期作为字符串警告已弃用toGmtString()问题

我想在Android中获取当前日期日/月/年最小值:秒,所以我使用了以下代码

String data="";
Calendar c = Calendar.getInstance(); 
data=c.getTime().toGMTString();
Run Code Online (Sandbox Code Playgroud)

但Eclipse通知我该方法.toGMTString();已被弃用.

如何将当前日期作为格式化字符串获取,避免使用此弃用方法?

android calendar android-date android-calendar

4
推荐指数
2
解决办法
8460
查看次数

如何在android中按日期范围或月份获取日历事件

我使用下面的代码来获取和加载我的应用程序中的日历事件.它工作得很好.但现在我想获得指定日期范围的事件.我怎么才能得到它..

Cursor cursor = getContentResolver().query(
                Uri.parse("content://com.android.calendar/events"),
                new String[] { "_id", "title", "dtstart", "dtend" }, null,
                null, "dtstart ASC");
Run Code Online (Sandbox Code Playgroud)

应该是
dtstart ="2013-01-01"
dtend ="2013-01-31"

android android-calendar

4
推荐指数
2
解决办法
5749
查看次数

CalendarView需要很长时间才能显示

我正在使用CalendarView上的应用程序.我必须以小线性布局显示calendarView.

显示整个页面时出现问题,该页面包含小线性布局中的calendarView. - >这需要10秒才能显示,这是很多时间......

布局中没有其他东西.

这是我的xml和snap ...

任何帮助都会受到强烈关注 ......

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical" >

    <LinearLayout
        android:layout_width="fill_parent"
        android:layout_height="fill_parent" >

        <LinearLayout
            android:layout_width="0dp"
            android:layout_height="fill_parent"
            android:layout_weight="1"
            android:orientation="vertical" >

            <RelativeLayout
                android:layout_width="fill_parent"
                android:layout_height="0dp"
                android:layout_weight="30"
                android:paddingLeft="30dp" >

                <TextView
                    android:id="@+id/txtDate"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:text="My Calendar"
                    android:textSize="50sp" />

                <View
                    android:layout_width="fill_parent"
                    android:layout_height="2dp"
                    android:layout_alignParentBottom="true"
                    android:layout_marginBottom="40dp"
                    android:layout_marginRight="30dp"
                    android:background="@android:color/black" />
            </RelativeLayout>

            <RelativeLayout
                android:layout_width="fill_parent"
                android:layout_height="0dp"
                android:layout_weight="70"
                android:paddingBottom="30dp"
                android:paddingLeft="20dp"
                android:paddingRight="20dp"
                android:paddingTop="30dp" >

                <LinearLayout
                    android:layout_width="fill_parent"
                    android:layout_height="fill_parent"
                    android:gravity="center"
                    android:orientation="vertical" >

                    <ListView
                        android:id="@+id/list_task"
                        android:layout_width="fill_parent"
                        android:layout_height="wrap_content" >
                    </ListView>
                </LinearLayout>
            </RelativeLayout>
        </LinearLayout>

        <LinearLayout
            android:layout_width="0dp"
            android:layout_height="fill_parent"
            android:layout_weight="1" …
Run Code Online (Sandbox Code Playgroud)

android android-calendar

4
推荐指数
1
解决办法
6199
查看次数

Android,日历,将RRULE添加到事件永远不会有效

我正在遵循rfc2445规范并向cal插入一个循环事件,但始终会得到无效的重复错误.

Invalid recurrence rule: RRULE:FREQ=WEEKLY;UNTIL=20141007T000000Z;WKST=SU;BYDAY=TU,TH

这是我的代码,注意我返回上面的常量rrule字符串,以确保我没有违反规范,我只是改变从1997年到2014年的年份.任何想法为什么它不起作用?谢谢

ContentResolver cr = getContentResolver();
        ContentValues values = new ContentValues();
        values.put(CalendarContract.Events.DTSTART, model.getStartTime().toMillis(false));
        values.put(CalendarContract.Events.DTEND, model.getEndTime().toMillis(false));
        values.put(CalendarContract.Events.EVENT_TIMEZONE, timezone);
        values.put(CalendarContract.Events.TITLE, model.getTitle());
        values.put(CalendarContract.Events.EVENT_LOCATION, model.getLocation().getName());
        values.put(CalendarContract.Events.DESCRIPTION, model.getDescription());
        values.put(CalendarContract.Events.CALENDAR_ID, calId);
        String recurString ="RRULE:FREQ=WEEKLY;UNTIL=20141007T000000Z;WKST=SU;BYDAY=TU,TH"

        values.put(CalendarContract.Events.RRULE, recurString);


        Uri uri = cr.insert(CalendarContract.Events.CONTENT_URI, values);
Run Code Online (Sandbox Code Playgroud)

android android-calendar

4
推荐指数
1
解决办法
3044
查看次数

如何获取重复事件的实时时间?

我使用以下方法来获取日历的所有事件:

public Cursor getEventsCursor(Context context) {        
    long curr = System.currentTimeMillis();
    long begin = curr - DateUtils.DAY_IN_MILLIS * 30; // - 30 days
    long end = curr + DateUtils.DAY_IN_MILLIS * 30;   // + 30 days

    Cursor cur = null;
    ContentResolver cr = context.getContentResolver();

    String selection = Events.VISIBLE + "= ?";
    String[] selectionArgs = new String[] {"1"};
    String order = Events.DTSTART + " DESC";

    Uri.Builder builder = Instances.CONTENT_URI.buildUpon();
    ContentUris.appendId(builder, begin);
    ContentUris.appendId(builder, end);

    return cr.query(builder.build(), EVENT_PROJECTION, 
            selection, selectionArgs, order);
} 
Run Code Online (Sandbox Code Playgroud)

它有效,但是我得到所有重复事件的初始时间!

日志

Feeder …
Run Code Online (Sandbox Code Playgroud)

android android-calendar

4
推荐指数
1
解决办法
680
查看次数

自定义日历日期范围滑动选择Android

我需要设计一个自定义日历来选择日期在此处输入图片说明刷他们。我需要一些有关如何在日历上实现滑动的解决方案,如果有任何支持此功能的库,也将有所帮助。

任何类型的帮助都将被考虑。谢谢!刷卡日期界面图片如图

android calendar android-calendar

4
推荐指数
2
解决办法
9245
查看次数