Форум программистов, компьютерный форум CyberForum.ru

TimePickerFragment - Android

Восстановить пароль Регистрация
 
Rom96
0 / 0 / 0
Регистрация: 07.11.2014
Сообщений: 35
13.03.2016, 19:25     TimePickerFragment #1
Здравствуйте, есть небольшая проблемка на учебном задании.

Как правильно передать значение времени из фрагмента TimePickerFragment в хост-активность, что бы потом можно было присвоить новое значение времени экземпляру?


Вот отсюда
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
package com.bignerdranch.android.criminalintent;
 
import android.app.Activity;
import android.app.Dialog;
import android.content.DialogInterface;
import android.content.Intent;
import android.os.Bundle;
import android.support.annotation.NonNull;
import android.support.v4.app.DialogFragment;
import android.support.v7.app.AlertDialog;
import android.view.View;
import android.widget.TimePicker;
 
import java.util.Calendar;
import java.util.Date;
import java.util.GregorianCalendar;
 
public class TimePickerFragment extends DialogFragment {
    public static String EXTRA_TIME =
            "com.bignerdranch.android.criminalintent.time";
 
    public Date mTime;
 
 
    public static TimePickerFragment newInstance(Date date){
        Bundle args = new Bundle();
        args.putSerializable(EXTRA_TIME, date);
 
        TimePickerFragment fragment = new TimePickerFragment();
        fragment.setArguments(args);
 
        return fragment;
    }
 
 
    private void sendResult(int resultCode){
 
        if(getTargetFragment() == null)
            return;
 
        Intent i = new Intent();
        i.putExtra(EXTRA_TIME, mTime);
 
        getTargetFragment()
                .onActivityResult(getTargetRequestCode(), resultCode, i);
 
    }
 
 
 
    @NonNull
    @Override
    public Dialog onCreateDialog(Bundle savedInstanceState) {
 
        mTime =(Date)getArguments().getSerializable(EXTRA_TIME);
 
        Calendar calendar = Calendar.getInstance();
        calendar.setTime(mTime);
 
 
        View v = getActivity().getLayoutInflater()
                .inflate(R.layout.dialog_date, null);
 
       TimePicker timePicker = (TimePicker)v.findViewById(R.id.dialog_time_picker);
        timePicker.setOnTimeChangedListener(new TimePicker.OnTimeChangedListener() {
            @Override
            public void onTimeChanged(TimePicker view, int hourOfDay, int minute) {
             //???
            }
        });
 
 
        return new AlertDialog.Builder(getActivity())
                .setView(v)
                .setTitle(R.string.time_picker_title)
                .setPositiveButton(android.R.string.ok, new DialogInterface.OnClickListener() {
 
                    @Override
                    public void onClick(DialogInterface dialog, int which) {
                        sendResult(Activity.RESULT_OK);
                    }
                })
                .create();
 
    }
 
}

Вот сюда
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
 mTimeButton = (Button)v.findViewById(R.id.crime_time);
       updateTime();
        mTimeButton.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                FragmentManager fm = getActivity()
                        .getSupportFragmentManager();
                TimePickerFragment dialog = TimePickerFragment
                        .newInstance(mCrime.getDate());
                dialog.setTargetFragment(CrimeFragment.this, REQUEST_TIME);
                dialog.show(fm, DIALOG_TIME);
            }
        });
Лучшие ответы (1)
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
CoolMind
411 / 394 / 65
Регистрация: 06.10.2012
Сообщений: 1,701
14.03.2016, 12:43     TimePickerFragment #2
Сообщение было отмечено автором темы, экспертом или модератором как ответ
Rom96, примеров по установке таймера великое множество, даже не знаю, почему вы их не нашли.
Там же надо предусмотреть возможность отмены по нажатию на отмену или на произвольное место за пределами диалогового окна. Весь код писать не буду, сами поищете.
Вместо знаков вопроса впишите такое:
Java
1
2
3
4
5
6
                    calendar.set(Calendar.HOUR_OF_DAY, hourOfDay);
                    calendar.set(Calendar.MINUTE, minute);
                    calendar.set(Calendar.SECOND, 0);
 
                    // Отправка данных на сервер.
                    sendTimeToServer(calendar.getTime());
Можно ещё туда дорисовать миллисекунды (установить в 0).
Yandex
Объявления
14.03.2016, 12:43     TimePickerFragment
Ответ Создать тему
Опции темы

Текущее время: 04:15. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru