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

Не могу реализовать TimePickerDialog - Android

Восстановить пароль Регистрация
 
JerryLetehen
4 / 4 / 0
Регистрация: 07.11.2015
Сообщений: 63
12.11.2016, 20:33     Не могу реализовать TimePickerDialog #1
Доброго времени суток! Делаю приложение, которое будет изменять громкость телефона в назначенное время на назначенную громкость. Хочу, чтобы при нажатии на TextView у меня вылез TimePickerDialog, где я выберу время. И эти значения(взятые из timepicker'а) заменили текст в TextView. Столкнулся с затруднением: мне нужно видимо указать активити, в котором он будет появляться, и чтобы я не писал, мне пишет, мол Cannot resolve method or Cannot reslove Constructor. Хотя месседж диалог внизу работает исправно, хотя там тоже написано MainActivity.this. Помогите!!!
Что указывал в скобках
MainActivity.this or getActivity() or something else

Java
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
package com.example.jerryletehen.setyourvolume;
 
import android.app.TimePickerDialog;
import android.content.DialogInterface;
import android.support.v7.app.AlertDialog;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.TextView;
import android.widget.TimePicker;
 
public class MainActivity extends AppCompatActivity {
    TimePickerDialog timepickerdialog;
 
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        final TextView editTime = (TextView) findViewById(R.id.editTime);
        final TextView editVolume = (TextView) findViewById(R.id.editVolume);
        final Button button = (Button) findViewById(R.id.button);
        editTime.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                timepickerdialog = new TimePickerDialog(getActivity(), new TimePickerDialog.OnTimeSetListener() {
                    @Override
                    public void onTimeSet(TimePicker view, int hourOfDay, int minute) {
 
                    }
                })
 
            }
        });
        editVolume.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                editVolume.setText("Bro");
            }
        });
        button.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                AlertDialog.Builder alert = new AlertDialog.Builder(MainActivity.this);
                alert.setMessage("Done!");
                alert.setNegativeButton("Okey!", new DialogInterface.OnClickListener() {
                    @Override
                    public void onClick(DialogInterface dialog, int which) {
                        dialog.cancel();
                    }
                });
                alert.show();
            }
        });
    }
}
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
ExFau$t
55 / 55 / 4
Регистрация: 08.05.2012
Сообщений: 448
12.11.2016, 22:11     Не могу реализовать TimePickerDialog #2
А причём тут getActivity(), когда там context требуется.
JerryLetehen
4 / 4 / 0
Регистрация: 07.11.2015
Сообщений: 63
12.11.2016, 23:35  [ТС]     Не могу реализовать TimePickerDialog #3
Цитата Сообщение от ExFau$t Посмотреть сообщение
А причём тут getActivity(), когда там context требуется.
В гугле у всех стоит то MainActivity.this то MyClass.class, то getActivity(). Я типа новичок, чо там писать-то надо?
Antohsa
8 / 12 / 0
Регистрация: 18.10.2016
Сообщений: 112
13.11.2016, 00:05     Не могу реализовать TimePickerDialog #4
Да по идеи все правильно вы делаете... context и будет this, или MainActivity.this....

Может быть все-таки дело в контексте... на какую строку ругается то?
shavuz
56 / 62 / 10
Регистрация: 29.01.2014
Сообщений: 299
13.11.2016, 10:29     Не могу реализовать TimePickerDialog #5
у него в констракторе должны быть еще данные, кроме активити и колбека есть еще начало,конец и формат времени
из документации:
Java
1
2
3
4
5
6
TimePickerDialog (Context context, 
                int themeResId, 
                TimePickerDialog.OnTimeSetListener listener, 
                int hourOfDay, 
                int minute, 
                boolean is24HourView)

а вот то что в самом файле таймпикердиалог.джава :
Java
1
2
3
4
   public TimePickerDialog(Context context, OnTimeSetListener listener, int hourOfDay, int minute,
            boolean is24HourView) {
        this(context, 0, listener, hourOfDay, minute, is24HourView);
    }
а алертдиалог действительно хочет только контекст, его констрактор:
Java
1
2
3
   protected AlertDialog(@NonNull Context context) {
        this(context, 0);
    }
JerryLetehen
4 / 4 / 0
Регистрация: 07.11.2015
Сообщений: 63
13.11.2016, 15:27  [ТС]     Не могу реализовать TimePickerDialog #6
Цитата Сообщение от shavuz Посмотреть сообщение
у него в констракторе должны быть еще данные
Подсказывает, но Context context не хочет понимать((( Что конкретно в мой код писать? или его переделать вовсе? Нужно, чтобы при нажатии на TextView вылазил TimePickerDialog. А выбранное время записать в нажатый textview, ну это я знаю как.
Миниатюры
Не могу реализовать TimePickerDialog   Не могу реализовать TimePickerDialog  
shavuz
56 / 62 / 10
Регистрация: 29.01.2014
Сообщений: 299
13.11.2016, 15:39     Не могу реализовать TimePickerDialog #7
Цитата Сообщение от JerryLetehen Посмотреть сообщение
Context context
то что он вам показывает это значит что вы там должны дать переменную контекст типа контекст, а не написать там именно то что написано,
попробуйте так:
Java
1
2
3
4
5
6
7
8
9
10
 Calendar mcurrentTime = Calendar.getInstance();
            int hour = mcurrentTime.get(Calendar.HOUR_OF_DAY);
            int minute = mcurrentTime.get(Calendar.MINUTE);
       
            timepickerdialog = new TimePickerDialog(MainActivity.this, new TimePickerDialog.OnTimeSetListener() {
                @Override
                public void onTimeSet(TimePicker timePicker, int selectedHour, int selectedMinute) {
                   
                }
            }, hour, minute, true);//Yes 24 hour time
JerryLetehen
4 / 4 / 0
Регистрация: 07.11.2015
Сообщений: 63
13.11.2016, 15:45  [ТС]     Не могу реализовать TimePickerDialog #8
Цитата Сообщение от shavuz Посмотреть сообщение
у него в констракторе должны быть еще данные
Цитата Сообщение от shavuz Посмотреть сообщение
то что он вам показывает это значит что вы там должны дать переменную контекст типа контекст, а не написать там именно то что написано,
попробуйте так:
Заработало, спасибо большое!!! Теперь я всё понял, что должен был писать!!! Спасибо!
Миниатюры
Не могу реализовать TimePickerDialog  
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
13.11.2016, 15:53     Не могу реализовать TimePickerDialog
Еще ссылки по теме:

Передача id в TimePickerDialog Android
Как реализовать список Android

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
shavuz
56 / 62 / 10
Регистрация: 29.01.2014
Сообщений: 299
13.11.2016, 15:53     Не могу реализовать TimePickerDialog #9
Не за что :-)
Yandex
Объявления
13.11.2016, 15:53     Не могу реализовать TimePickerDialog
Ответ Создать тему
Опции темы

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