Форум программистов, компьютерный форум, киберфорум
Наши страницы
Программирование Android
Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 17, средняя оценка - 4.82
korol_lion
3 / 3 / 2
Регистрация: 06.04.2013
Сообщений: 150
#1

Устаревший метод showDialog() в DatePickerDialog - Программирование Android

06.04.2013, 15:39. Просмотров 2606. Ответов 7
Метки нет (Все метки)

Я изучаю только андроид и у меня возникла проблема. Мой eclipse показывает что метод showDialog() устарел и не хочет запускать программу в эмуляторе (пробовала и андроид версии 4.2 и 2.2). Пыталась пробовать по новому с фрагментами, но для меня сейчас это темный лес да и там все по английски. Помогите пожалуйста изменить код на новый с фрагментами как полагается, потому что часто использую метод showDialog(). Заранее спасибо. Код прилагается ниже.
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
package com.samples.datepickerdialog;
 
import java.util.Calendar;
 
import android.app.Activity;
import android.app.DatePickerDialog;
import android.app.Dialog;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.DatePicker;
import android.widget.TextView;
 
public class MainActivity extends Activity {
private TextView mDateDisplay;
private Button mButton;
private int mYear;
private int mMonth;
private int mDay;
static final int IDD_DATE = 0;
 
 
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
 
mDateDisplay = (TextView)findViewById(R.id.text);
mButton = (Button)findViewById(R.id.button);
 
mButton.setOnClickListener(new View.OnClickListener() {
 
@Override
public void onClick(View v) {
showDialog(IDD_DATE);
 
}
});
 
final Calendar c = Calendar.getInstance();
mYear = c.get(Calendar.YEAR);
mMonth = c.get(Calendar.MONTH);
mDay = c.get(Calendar.DAY_OF_YEAR);
updateDisplay();
}
 
protected Dialog onCreateDialog(int id){
switch(id) {
case IDD_DATE:
return new DatePickerDialog(this, mDateSetListener, mYear, mMonth, mDay);
}
return null;
}
 
private void updateDisplay(){
mDateDisplay.setText(new StringBuilder()
.append(mMonth+1).append("-")
.append(mDay).append("-")
.append(mYear).append("-"));
}
 
private DatePickerDialog.OnDateSetListener mDateSetListener
= new DatePickerDialog.OnDateSetListener() {
 
@Override
public void onDateSet(DatePicker view, int year, int monthOfYear,
int dayOfMonth) {
mYear = year;
mMonth = monthOfYear;
mDay = dayOfMonth;
updateDisplay();
 
}
};
 
 
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
06.04.2013, 15:39
Я подобрал для вас темы с готовыми решениями и ответами на вопрос Устаревший метод showDialog() в DatePickerDialog (Программирование Android):

DatePickerDialog
Добрый день! Ребят не могу сообразить. ... public void onClick(View v) {...

Вид DatePickerDialog
Всем привет! Столкнулся с необходимостью при нажатии кнопки выводить...

DatePickerDialog формат выбранной даты
Добрый день. Подскажите пожалуйста как изменить формат даты после выбора в...

DatePickerDialog на нескольких обработчиках событий
Здравствуйте! Помогите разобраться: есть активити, на котором два button'а,...

Перед вызовом активити, вызвать DatePickerDialog
Всем Здравствуйте! У меня есть button, который вызывает активити, надо на это...

Передать значение DatePickerDialog в другой класс
Здравствуйте! У меня есть два активити в первом, по нажатию button у меня...

7
V0v1k
1160 / 984 / 1
Регистрация: 28.06.2012
Сообщений: 3,462
06.04.2013, 16:53 #2
http://developer.android.com/guide/topics/ui/dialogs.html
здесь все написано.

а вообще когда вы наводите курсор на ошибку должен появится попап в котором можно отключить проверку этого.
0
Vladimirys
312 / 209 / 27
Регистрация: 16.01.2010
Сообщений: 610
06.04.2013, 18:35 #3
Можно и не юзать фрагменты, тем более, что они недоступны на версии ниже API 11. Сделав такой "финт ушами"
"гуловцы" фактически намекнули на то, что все это барахло, что ниже 11 API уже не в моде.
Но вернемся к диалогам. Можно сделать так и все будет работать.
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
AlertDialog.Builder builder = new AlertDialog.Builder(
                    MainActivity.this);
 
            builder.setMessage("")
 
            .setTitle("")
 
            .setPositiveButton("", new DialogInterface.OnClickListener() {
 
                public void onClick(DialogInterface dialog, int id) {
 
                    finish();
 
                    dialog.dismiss();
 
                }
 
            })
 
            .setNegativeButton("", new DialogInterface.OnClickListener() {
 
                public void onClick(DialogInterface dialog, int which) {
 
                    dialog.dismiss();
 
                }
 
            });
 
            AlertDialog alert = builder.create();
 
            alert.show();
 
            return true;
 
        }
У фрагментов так же не все просто с .setCancelable(false). В смысле писанины больше нужно.
0
V0v1k
1160 / 984 / 1
Регистрация: 28.06.2012
Сообщений: 3,462
06.04.2013, 18:41 #4
Vladimirys, об суппорт лайбрери не слыхали?
http://developer.android.com/tools/extras/support-library.html
0
Vladimirys
312 / 209 / 27
Регистрация: 16.01.2010
Сообщений: 610
06.04.2013, 18:46 #5
Слыхали, но это опять "огород", и писанина. Это если сравнить с реальной жизнью - заделать входную дверь, и "для удобства" прорубить дырку на крыше и приставить лестницу. Хотя опять же -ИМХО.
0
V0v1k
1160 / 984 / 1
Регистрация: 28.06.2012
Сообщений: 3,462
06.04.2013, 18:49 #6
Цитата Сообщение от Vladimirys Посмотреть сообщение
Слыхали, но это опять "огород", и писанина.
не понимаю о чем вы, просто подключаете либу и пользуетесь фрагментами как обычно, сейчас эклипс ее автоматически добавляет.
0
Vladimirys
312 / 209 / 27
Регистрация: 16.01.2010
Сообщений: 610
07.04.2013, 02:44 #7
Вот смотрите, нужно просто подключить либу, просто использовать фрагменты, которые сами по себе, для использования требуют больше кода (больше кода, больше вероятность ошибки). Или же сделать так как я предложил выше, без либы, без фрагментов. И разницы особо не видно, когда функциональность фрагментов не нужна. А для простого диалога типа Сохранить? Да\Нет, она, функциональность и не нужна. Но если брать на перспективу, то конечно, нужно знать и использовать фрагменты.
0
V0v1k
1160 / 984 / 1
Регистрация: 28.06.2012
Сообщений: 3,462
07.04.2013, 14:29 #8
ну, документацию не дураки писали...
0
07.04.2013, 14:29
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
07.04.2013, 14:29
Привет! Вот еще темы с решениями:

Прозрачный showDialog
Здравствуйте,как сделать прозрачным showDialog? В интернете почитал как это...

Изменение стилей для элементов showDialog
Здравствуйте. Как изменить стили элементов showDialog? Есть элементы диалога, в...

Пометить метод как устаревший через коментарий
Всем привет! Подскажите пожалуйста как в visual Studio 2015 пометить метод на...

метод showdialog
при нажатии на кнопку Size происходит открытие новой формы private void...


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

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru