当前位置: 首页 > 知识库问答 >
问题:

在android studio活动之间发送数据的问题

戚研
2023-03-14

我试图注销报警应用程序,但在活动之间发送数据时遇到问题。在主活动中,我打开下一个活动,在那里设置警报。设置警报后,我希望返回到主活动字符串,并提供警报将在何时启动的信息。这是我的代码:

  public void addActivity(View view) {
                intent = new Intent(this, Time_Picker.class);
                startActivityForResult(intent, REQUEST_GET_TIME);
                }

**设置报警(我发送变量intent\u字符串,intent转到AlarmReceiver类)**

alarm_on.setOnClickListener(new View.OnClickListener(){
            @TargetApi(Build.VERSION_CODES.M)
            @Override
            public void onClick(View v){

                ind = true;

                calendar.set(Calendar.HOUR_OF_DAY, timePicker.getCurrentHour());
                calendar.set(Calendar.MINUTE, timePicker.getCurrentMinute());

                int hour = timePicker.getCurrentHour();
                int minute = timePicker.getCurrentMinute();

                String hourString = String.valueOf(hour);
                String minuteString = String.valueOf(minute);

                if(minute<10){
                    minuteString="0"+String.valueOf(minute);
                }

                intent.putExtra("extra", "on");

                temp = select_item +" - " +hourString+":"+minuteString;

                intent_string = getIntent();

                intent_string.putExtra("temp", temp);
                setResult(RESULT_OK, intent_string);





                pendingIntent = PendingIntent.getBroadcast(Time_Picker.this,
                        0, intent, PendingIntent.FLAG_UPDATE_CURRENT);

                alarmManager.set(AlarmManager.RTC_WAKEUP, calendar.getTimeInMillis(),
                        pendingIntent);



                finish();

    }
});
 @Override
        protected void onActivityResult(int requestCode, int resultCode, Intent data) {
        super.onActivityResult(requestCode, resultCode, data);

        Log.e("dziala:", "");

        if (requestCode == 1){
            if(resultCode == RESULT_OK){

                String text = data.getStringExtra("temp");


                Log.e("dziala:", text);
            }
        }
    }

运行此警报后,该警报正在工作,但我似乎应用程序从未处于活动结果函数中(应该从日志中获取信息,但我什么也没有得到)。

共有1个答案

沈骞仕
2023-03-14

下面是一个完整的示例:

以下是打开计时器并根据所选时间设置警报的代码

 TimePickerDialog basic_timer_timePickerDialog;


private void Timer(boolean is24r){
    Calendar calendar = Calendar.getInstance();
    Log.d(TAG, "EnableTimer Called");
    basic_timer_timePickerDialog2 = new TimePickerDialog(
            getActivity(),
            onTimeSetListener2,
            calendar.get(Calendar.HOUR_OF_DAY),
            calendar.get(Calendar.MINUTE),
            is24r);
    basic_timer_timePickerDialog2.setTitle(getResources().getString(R.string.enable_alarm));
    basic_timer_timePickerDialog2.show();

}



TimePickerDialog.OnTimeSetListener onTimeSetListener2
    = new TimePickerDialog.OnTimeSetListener(){

@Override
public void onTimeSet(TimePicker view, int hourOfDay, int minute) {

    Calendar calNow = Calendar.getInstance();
    Calendar calSet = (Calendar) calNow.clone();

    calSet.set(Calendar.HOUR_OF_DAY, hourOfDay);
    calSet.set(Calendar.MINUTE, minute);
    calSet.set(Calendar.SECOND, 0);
    calSet.set(Calendar.MILLISECOND, 0);

    if(calSet.compareTo(calNow) <= 0){
        //Today Set time passed, count to tomorrow
        calSet.add(Calendar.DATE, 1);
    }

    Timer alarm = new Timer();
    alarm.setAlarm(calSet,getActivity());
}};

定时器类:

    public void setAlarm(Calendar targetCal, Context context){

    String AlarmSetToText = context.getResources().getString(R.string.AlarmSetToText);

    String TimeSetTo = AlarmSetToText + " " + targetCal.getTime();

    Toast.makeText(context, TimeSetTo, Toast.LENGTH_LONG).show();

    Intent intent = new Intent(context, TimerEnable.class);
    PendingIntent pendingIntent = PendingIntent.getBroadcast(context, REQUEST_INT, intent, 0);
    AlarmManager alarmManager = (AlarmManager)context.getSystemService(Context.ALARM_SERVICE);
    alarmManager.set(AlarmManager.RTC_WAKEUP, targetCal.getTimeInMillis(), pendingIntent);

}
 类似资料:
  • 问题内容: 您好,我正在尝试在两个片段(armarFragment到cocinaFragment)之间发送数据,但是我不知道该怎么做,因为这两个片段都在同一个Activity(tabsActivity)中,后者实现了一个pagerAdaptar以显示不同片段。在这里,我把我的代码。谢谢。 tabsActivity.java(在内部可以找到类pagerAdapter)。 armarFregment.

  • 我目前正在制作一个有edittext和2个按钮的应用程序,每次我在edittext中写一些东西,然后按下按钮1,就会添加一个新的textview。这是代码: 基本上,我正在做的是添加新的“玩家”,一旦我添加了他们,我想按下按钮2。Button2打开一个新活动,新活动应该读取我在前一个活动中添加的所有textviews。

  • 我正在开发一个应用程序,该应用程序收集用户选择(从复选框中)并将其发送到一个新活动(当按下按钮时)。在新活动中,将收集一个新数据(editText)并将新收集的接收数据合并并通过电子邮件发送。 当我按下第一个按钮将复选框数据发送到新活动时,我得到一个错误: 应用程序意外停止 下面是代码: 复选框转换方法为: 所以,如果有任何错误,请告诉我。

  • 我正在做一个基本的投票系统,其中我有2个HTML页面(都在同一个域上)。在第1页上有两个按钮,用户可以从中选择一个。第2页我想在一个图形中显示所选的选项。目标是,如果在第1页上点击了一个按钮,第2页上的数据就会自动更新,而不会刷新整个页面。 为了做到这一点,我尝试将单击的选项保存在LocalStorage中。我通过使用编写变量来获得数据。但是,当我得到数据时,我必须手动刷新第2页,以便结果显示。有

  • 问题内容: 我在通过Notification从服务向活动发送数据时遇到问题,我单击了一个活动被调用的通知,但是当我尝试通过捆绑包添加一些参数时,我无法获得所谓的intent中的参数,我经历了链接 如何将通知单击中的参数发送到活动? 但是仍然没有运气。 其他人也发生过同样的问题吗? 提前致谢。 问题答案: 您还必须修改清单文件。 这是有效的示例: 这些变量和方法是Service类的成员: 这是Mai

  • 我成功地尝试在三个活动之间传递数据。那就是: (数据3)活动1(数据1)- 现在的问题是: 我希望使用条件在这些活动之间传递数据。这是在Activity2中,在将数据发送到Activity3之前,我想检查一下 这是名为PickCard的Activity1的代码。Java语言 下面是Activity2 BuildWord的代码。Java语言 这是名为DropCard的Activity3的代码。Jav