繁体   English   中英

如何在Android Studio(Java)中的另一个活动中将timepicker中的时间值传递给textView?

[英]How to pass time value from timepicker to textView in another activity in Android studio(Java)?

当我在timepicker中选择时间创建通知时,我做了所有事情,但我无法将其传递给另一个活动中的textview。 有人可以帮我弄这个吗?

我想从打发时间值SecondActivitytextView命名textviewAlarmHomeActivity一下[按钮完成时。

public class Second extends AppCompatActivity implements View.OnClickListener{

    private int notificationId = 1;


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

        // Set Onclick Listener.
        findViewById(R.id.setBtn).setOnClickListener(this);
        findViewById(R.id.cancelBtn).setOnClickListener(this);
    }

    @Override
    public void onClick(View view) {
        EditText editText = findViewById(R.id.editText);
        TimePicker timePicker = findViewById(R.id.timePicker);

        // Set notificationId & text.
        Intent intent = new Intent(Second.this, AlarmReceiver.class);
        intent.putExtra("notificationId", notificationId);
        intent.putExtra("todo", editText.getText().toString());

        // getBroadcast(context, requestCode, intent, flags)
        PendingIntent alarmIntent = PendingIntent.getBroadcast(Second.this, 0,
                intent, PendingIntent.FLAG_CANCEL_CURRENT);

        AlarmManager alarm = (AlarmManager) getSystemService(ALARM_SERVICE);

        switch (view.getId()) {
            case R.id.setBtn:
                int hour = timePicker.getCurrentHour();
                int minute = timePicker.getCurrentMinute();

                // Create time.
                Calendar startTime = Calendar.getInstance();
                startTime.set(Calendar.HOUR_OF_DAY, hour);
                startTime.set(Calendar.MINUTE, minute);
                startTime.set(Calendar.SECOND, 0);
                long alarmStartTime = startTime.getTimeInMillis();

                // Set alarm.
                // set(type, milliseconds, intent)
                alarm.set(AlarmManager.RTC_WAKEUP, alarmStartTime, alarmIntent);


                // Get TextView object which is used to show user pick date and time.
                TextView textView = (TextView)findViewById(R.id.textViewAlarm);

                StringBuffer strBuffer = new StringBuffer();
                strBuffer.append("You selected date time : ");
                strBuffer.append(this.notificationId);

                textView.setText(strBuffer.toString());

                break;

            case R.id.cancelBtn:
                alarm.cancel(alarmIntent);
                Toast.makeText(this, "Canceled.", Toast.LENGTH_SHORT).show();
                break;
        }
    }
}

我想显示在我选择的时间textViewAlarmHomeActivity

你可以通过添加一个来从时间选择器中获取时间

timePicker.setOnTimeChangedListener( new TimePicker.onTimeChangedListener() {

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

                    time = String.valueOf(hourOfDay).toString() + ":" + String.valueOf(minute).toString();
                }

}

当用户更改时间时,它会将时间分配给变量并通过intent传递该参数,如下所示

Intent intent = new Intent(Second.this, AlarmReceiver.class);
intent.putExtra("notificationId", notificationId);
intent.putExtra("time", time);

从HomeActivity获取传递的参数并将其设置为TextView,如下所示

textviewAlarm.setText(time.toSring());

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM