如何在Android中将事件动态设置为本地日历?

用户名

我需要将事件设置为本地日历,日期和时间将由用户输入提供,如何将日期和时间值传递给本地日历?我尝试了很多,Calendar.getInstance()将有助于设置当前日期和时间。但是我想为用户提供的日期和时间设置事件。在这方面有人可以帮助我吗?我想要特定的代码。

用户名
package com.example.calendar_four_one;

import java.sql.Date;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Calendar;
import java.util.List;

import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.provider.CalendarContract;
import android.provider.CalendarContract.Events;
import android.util.Log;
import android.view.Menu;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Toast;

public class MainActivity extends Activity {

Button click;
EditText date,time;
int years,months,days,hours,mins,seconds;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);


    date=(EditText) findViewById(R.id.editTextDate);
    time=(EditText) findViewById(R.id.editTextTime);


    click=(Button) findViewById(R.id.button1);

    click.setOnClickListener(new OnClickListener() {

        @Override
        public void onClick(View arg0) {
            // TODO Auto-generated method stub

            String d=date.getText().toString();

            String t=time.getText().toString();

            List <String> dateTime = new ArrayList<String>();
            dateTime = getDateAndTime(d,t);
            //String str[] = new String[dateTime.size()];

            years = Integer.parseInt(dateTime.get(0));
            months = Integer.parseInt(dateTime.get(1));
            days = Integer.parseInt(dateTime.get(2));
            hours = Integer.parseInt(dateTime.get(3));
            mins = Integer.parseInt(dateTime.get(4));
            seconds = Integer.parseInt(dateTime.get(5));

            Toast.makeText(getApplicationContext(), ""+years, Toast.LENGTH_LONG).show();

            //SimpleDateFormat formatter=new SimpleDateFormat("MM/dd/yyyy hh:mm:ss");

            Intent calIntent = new Intent(Intent.ACTION_INSERT);
            calIntent.setData(Events.CONTENT_URI);
            calIntent.putExtra(Events.TITLE, "Google IO Afterparty");
            calIntent.putExtra(Events.EVENT_LOCATION, "The W Hotel Bar on Third Street");
            calIntent.putExtra(Events.DESCRIPTION, "Hang out after Google IO for a drink and geeky conversation.");
            Calendar startTime = Calendar.getInstance();
            startTime.set(years, months-1, days, hours, mins,seconds); // (Year-2013)(Day-Wed [i.e:-3rd DOW]) (Date-16th) 15:50
            Calendar endTime = Calendar.getInstance();
            endTime.set(years, months-1, days, hours, mins+30,seconds); // 18:30
            calIntent.putExtra(CalendarContract.EXTRA_EVENT_BEGIN_TIME,
            startTime.getTimeInMillis());
            calIntent.putExtra(CalendarContract.EXTRA_EVENT_END_TIME,
            endTime.getTimeInMillis());
            startActivity(calIntent);

            Toast.makeText(getApplicationContext(), "", Toast.LENGTH_LONG).show();

        }
    });
}


public List<String> getDateAndTime(String date,String time)
{

    List<String> list = new ArrayList<String>();

    String[] dateStr = date.split("/");
    String[] timeStr = time.split(":");

    for(String str:dateStr)
        list.add(str);

    for(String str:timeStr)
        list.add(str);

    return list;

}

@Override
public boolean onCreateOptionsMenu(Menu menu) {
    // Inflate the menu; this adds items to the action bar if it is present.
    getMenuInflater().inflate(R.menu.activity_main, menu);
    return true;
}

}



package com.example.calendar_four_one;

import android.app.NotificationManager;
import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.media.Ringtone;
import android.media.RingtoneManager;
import android.net.Uri;
import android.os.Vibrator;
import android.support.v4.app.NotificationCompat;
import android.view.Gravity;
import android.widget.Toast;

public class ReminderReceiver extends BroadcastReceiver {
// Vibrator object
public Vibrator vibrator;
long[] pattern = { 0L, 250L, 200L, 250L, 200L, 250L, 200L, 250L, 200L,
    250L, 200L, 250L, 200L, 250L, 200L };
// Ringtone object
Uri ringT;
Ringtone ringTone;

@Override
public void onReceive(Context context, Intent intent) {
String remindText = intent.getStringExtra("text");
//Unique notification id for every alarm
int receiverID = intent.getIntExtra("AlrmId", 0);
// Notification creation
NotificationCompat.Builder mBuilder = new NotificationCompat.Builder(
        context).setSmallIcon(android.R.drawable.ic_popup_reminder)
        .setContentTitle("Reminder").setContentText(remindText);

// Create vibrator pattern
vibrator = (Vibrator) context
        .getSystemService(Context.VIBRATOR_SERVICE);
vibrator.vibrate(pattern, -1);// No repetition

// Notification tone creation and play
ringT = RingtoneManager
        .getDefaultUri(RingtoneManager.TYPE_NOTIFICATION);
ringTone = RingtoneManager.getRingtone(context, ringT);
ringTone.play();
// Create toast and show on center of the screen
Toast toast = Toast.makeText(context, remindText, Toast.LENGTH_LONG);
toast.setGravity(Gravity.CENTER, 0, 0);
toast.show();
// end of toast...

// Show status bar notification
NotificationManager mNotificationManager = (NotificationManager) context
        .getSystemService(Context.NOTIFICATION_SERVICE);
mNotificationManager.notify(receiverID, mBuilder.build());

}}

这段代码终于为我工作了。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何在日历中将动态类型的事件列表更改为我自己的类型?

来自分类Dev

如何在整个项目中将默认日历设置为公历?目标c

来自分类Dev

如何在Android中将位图设置为通知图标

来自分类Dev

如何在Android中将背景设置为edittext?

来自分类Dev

如何在Android中将ListView Scroll位置设置为底部?

来自分类Dev

如何在Android中将“活动”的根视图设置为片段?

来自分类Dev

如何在Android中将标签设置为Google Map的标记?

来自分类Dev

如何在Android中将标签设置为片段

来自分类Dev

如何在Android中将颜色资源设置为墙纸?

来自分类Dev

如何在Android中将Checkbox cheked值设置为textview?

来自分类Dev

如何在Android中将src设置为relativeLayout?

来自分类Dev

如何在Android中将背景设置为edittext?

来自分类Dev

如何在Android中将颜色资源设置为墙纸?

来自分类Dev

如何在Eclipse Luna中将本地目录设置为SVN存储库

来自分类Dev

如何在Eclipse Luna中将本地目录设置为SVN存储库

来自分类Dev

如何在PHP中将默认时区设置为用户的本地时区?

来自分类Dev

如何在GNOME日历小程序中将星期一设置为一周的第一天?

来自分类Dev

如何在GNOME日历小程序中将星期一设置为一周的第一天?

来自分类Dev

如何在Vaadin 7中将OnClick事件设置为<body>元素?

来自分类Dev

如何在 React 中将按钮的 onClick 事件设置为多个功能(取决于道具)?

来自分类Dev

如何在 Angular 中将我的 HTML5 日期时间本地输入字段设置为当前本地日期时间?

来自分类Dev

如何在Javascript / AngularJS中将foo动态设置为等于对象属性名称?

来自分类Dev

T-SQL | 如何在While循环中将值动态设置为变量

来自分类Dev

如何在Android中从日历获取特定星期的事件?

来自分类Dev

如何在Android日历上获取已删除的事件?

来自分类Dev

在Android中将程序ID(sid)动态设置为LibVLC

来自分类Dev

如何在android中的日历中设置日期的颜色

来自分类Dev

如何在单击日期时在全日历中将事件添加到日期

来自分类Dev

如何在Android中将线性布局中的内容设置为屏幕的底部?

Related 相关文章

  1. 1

    如何在日历中将动态类型的事件列表更改为我自己的类型?

  2. 2

    如何在整个项目中将默认日历设置为公历?目标c

  3. 3

    如何在Android中将位图设置为通知图标

  4. 4

    如何在Android中将背景设置为edittext?

  5. 5

    如何在Android中将ListView Scroll位置设置为底部?

  6. 6

    如何在Android中将“活动”的根视图设置为片段?

  7. 7

    如何在Android中将标签设置为Google Map的标记?

  8. 8

    如何在Android中将标签设置为片段

  9. 9

    如何在Android中将颜色资源设置为墙纸?

  10. 10

    如何在Android中将Checkbox cheked值设置为textview?

  11. 11

    如何在Android中将src设置为relativeLayout?

  12. 12

    如何在Android中将背景设置为edittext?

  13. 13

    如何在Android中将颜色资源设置为墙纸?

  14. 14

    如何在Eclipse Luna中将本地目录设置为SVN存储库

  15. 15

    如何在Eclipse Luna中将本地目录设置为SVN存储库

  16. 16

    如何在PHP中将默认时区设置为用户的本地时区?

  17. 17

    如何在GNOME日历小程序中将星期一设置为一周的第一天?

  18. 18

    如何在GNOME日历小程序中将星期一设置为一周的第一天?

  19. 19

    如何在Vaadin 7中将OnClick事件设置为<body>元素?

  20. 20

    如何在 React 中将按钮的 onClick 事件设置为多个功能(取决于道具)?

  21. 21

    如何在 Angular 中将我的 HTML5 日期时间本地输入字段设置为当前本地日期时间?

  22. 22

    如何在Javascript / AngularJS中将foo动态设置为等于对象属性名称?

  23. 23

    T-SQL | 如何在While循环中将值动态设置为变量

  24. 24

    如何在Android中从日历获取特定星期的事件?

  25. 25

    如何在Android日历上获取已删除的事件?

  26. 26

    在Android中将程序ID(sid)动态设置为LibVLC

  27. 27

    如何在android中的日历中设置日期的颜色

  28. 28

    如何在单击日期时在全日历中将事件添加到日期

  29. 29

    如何在Android中将线性布局中的内容设置为屏幕的底部?

热门标签

归档