Урок 63. Диалоги. AlertDialog. Список с одиночным выбором

Обсуждение уроков
Аватара пользователя
damager82
Администратор
Сообщения: 1383
Зарегистрирован: 07 янв 2012, 11:32
Контактная информация:

Урок 63. Диалоги. AlertDialog. Список с одиночным выбором

Сообщение damager82 » 08 мар 2012, 03:00

В этом уроке:

- формируем список с одиночным выбором в диалоге

[url=http://www.startandroid.ru/ru/uroki/vse ... l:27hms7vz]Click here to read this article![/url:27hms7vz]
Последний раз редактировалось damager82 12 май 2017, 11:55, всего редактировалось 6 раз.
Добро пожаловать на форум сайта StartAndroid
ИзображениеИзображение

aleksbim
Сообщения: 81
Зарегистрирован: 02 фев 2013, 02:52

Re: Урок 63. Диалоги. AlertDialog. Список с одиночным выборо

Сообщение aleksbim » 20 мар 2014, 11:24

При копировании урока MainActivity не распознает кнопки из layaut и данные Strings.
И все это в куче с вопросами к 3-му уроку:
1. Что такое appcompat_v7?
2. Зачем при создании теперь создается fragment_main.xml?
Вложения
Снимок.JPG
Снимок.JPG (26.79 КБ) 14434 просмотра

Аватара пользователя
klblk
Сообщения: 1097
Зарегистрирован: 18 окт 2012, 11:17
Откуда: г. Красноярск

Re: Урок 63. Диалоги. AlertDialog. Список с одиночным выборо

Сообщение klblk » 21 мар 2014, 05:24

aleksbim писал(а):При копировании урока MainActivity не распознает кнопки из layaut и данные Strings.
И все это в куче с вопросами к 3-му уроку:
1. Что такое appcompat_v7?
2. Зачем при создании теперь создается fragment_main.xml?
0) где-то скорее всего ошибка в xml файле, не генерируется R.java. м.б. project->clean.. поможет.
1-2) отвечалось уже на форуме неоднократно, ищите.

aleksbim
Сообщения: 81
Зарегистрирован: 02 фев 2013, 02:52

Re: Урок 63. Диалоги. AlertDialog. Список с одиночным выборо

Сообщение aleksbim » 23 мар 2014, 17:04

MainActivity не распознает (подчеркивает красным) имена кнопок из layaut и данные Strings.
62 урок, и, возможно другие - аналогичная проблема
project->clean.. - не помогло.
Сносил неоднократно eclipse, качал снова, устанавливал и обновлял все что можно обновить.
После создания проекта удаляю fragment_main.xml и далее копирую код с урока, все.
Подскажите пжл! Уже неделя впустую.

siberprogs
Сообщения: 93
Зарегистрирован: 05 мар 2014, 06:20

Re: Урок 63. Диалоги. AlertDialog. Список с одиночным выборо

Сообщение siberprogs » 23 мар 2014, 18:18

aleksbim писал(а):MainActivity не распознает (подчеркивает красным) имена кнопок из layaut и данные Strings.
62 урок, и, возможно другие - аналогичная проблема
project->clean.. - не помогло.
Сносил неоднократно eclipse, качал снова, устанавливал и обновлял все что можно обновить.
После создания проекта удаляю fragment_main.xml и далее копирую код с урока, все.
Подскажите пжл! Уже неделя впустую.
Попробуй activity_main.xml переименовать в main.xml
В уроках такое имя прописано:[syntax=java] public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);[/syntax]
Linux Fedora RFRemix + Intellij Idea

aleksbim
Сообщения: 81
Зарегистрирован: 02 фев 2013, 02:52

Re: Урок 63. Диалоги. AlertDialog. Список с одиночным выборо

Сообщение aleksbim » 24 мар 2014, 01:31

Переименовка main в Activity_main - это понятно, это первое что я делаю при создании каждого проекта уже с первых уроков. Проблема в чем-то другом.

aleksbim
Сообщения: 81
Зарегистрирован: 02 фев 2013, 02:52

Re: Урок 63. Диалоги. AlertDialog. Список с одиночным выборо

Сообщение aleksbim » 25 мар 2014, 18:03

На именах подчеркнутых кнопок/string ресурсов пишет ошибку: cannot be resolved or is not a field. Предлагает создать field или константу in type id либо поменять на action settings. Все скопировано с урока включая импорт. Ни один ответ на форуме по поиску "cannot be resolved or is not a field" не помог.

siberprogs
Сообщения: 93
Зарегистрирован: 05 мар 2014, 06:20

Re: Урок 63. Диалоги. AlertDialog. Список с одиночным выборо

Сообщение siberprogs » 25 мар 2014, 18:18

А в layout файлах ошибок нет? таких как тут например viewtopic.php?p=27886#p27886
Попробуй вручную набрать R.id. на второй точке exlipse (или что там у тебя) должен выкинуть список всех id в твоем проекте.
Linux Fedora RFRemix + Intellij Idea

aleksbim
Сообщения: 81
Зарегистрирован: 02 фев 2013, 02:52

Re: Урок 63. Диалоги. AlertDialog. Список с одиночным выборо

Сообщение aleksbim » 25 мар 2014, 19:20

layout скопирован с урока, ошибок не показывает.
Вложения
Безымянный.png
Безымянный.png (7.32 КБ) 14394 просмотра
Безымянный.png
Безымянный.png (13.46 КБ) 14394 просмотра

aleksbim
Сообщения: 81
Зарегистрирован: 02 фев 2013, 02:52

Re: Урок 63. Диалоги. AlertDialog. Список с одиночным выборо

Сообщение aleksbim » 25 мар 2014, 23:52

А также, при загрузке eclipse, выдается:

[2014-03-26 00:18:21 - P0621_AlertDialogItems] W/ResourceType( 1584): ResXMLTree_node header size 0x9 is too small.
[2014-03-26 00:18:21 - P0621_AlertDialogItems] D:\distrib\ANDROID\my eclipse2\workspase2\P0621_AlertDialogItems\res\menu\main.xml:3: error: Error: No resource found that matches the given name (at 'title' with value '@string/action_settings').

Заново установленный eclipse на уже другом компе. Все обновления, кроме 22.6 без фрагментов (без них проблем хватает). Те-же ошибки - подчеркнутые ресурсы layout и strings.

siberprogs
Сообщения: 93
Зарегистрирован: 05 мар 2014, 06:20

Re: Урок 63. Диалоги. AlertDialog. Список с одиночным выборо

Сообщение siberprogs » 26 мар 2014, 06:01

В проекте вверху Import android.R стоит? Если есть то убери.
Проверь файл /res/values/strings.xml.
Попробуй не копировать уроки а main.xml в дизайнере сделать, а код в ручную набрать.
copy-past такая штука не надежная!
Linux Fedora RFRemix + Intellij Idea

aleksbim
Сообщения: 81
Зарегистрирован: 02 фев 2013, 02:52

Re: Урок 63. Диалоги. AlertDialog. Список с одиночным выборо

Сообщение aleksbim » 26 мар 2014, 17:28

Заработало после добавления дополнительной строки в strings.xml по совету 4pda
<string name="action_settings">Settings</string>
В уроке её нет. Странно, что 2 недели назад все работало и без неё.

siberprogs
Сообщения: 93
Зарегистрирован: 05 мар 2014, 06:20

Re: Урок 63. Диалоги. AlertDialog. Список с одиночным выборо

Сообщение siberprogs » 26 мар 2014, 17:39

Странно! я тут с еклипсом игрался дня два назад, так эта строка автоматом создается.
Скорее всего ты ее затер копи-пастом.
Linux Fedora RFRemix + Intellij Idea

aleksbim
Сообщения: 81
Зарегистрирован: 02 фев 2013, 02:52

Re: Урок 63. Диалоги. AlertDialog. Список с одиночным выборо

Сообщение aleksbim » 26 мар 2014, 22:32

Точно! Спасибо! При создании проекта она есть. Я слепо не обращал внимание на неё при копировании и стирал. Значит раньше эта строка была не нужна, если в уроках её нет?

aleksbim
Сообщения: 81
Зарегистрирован: 02 фев 2013, 02:52

Re: Урок 63. Диалоги. AlertDialog. Список с одиночным выборо

Сообщение aleksbim » 28 мар 2014, 02:52

Помогите пжл, где искать ошибку? Не запускается.
Вложения
Снимок.JPG
Снимок.JPG (101.32 КБ) 14367 просмотров

Аватара пользователя
klblk
Сообщения: 1097
Зарегистрирован: 18 окт 2012, 11:17
Откуда: г. Красноярск

Re: Урок 63. Диалоги. AlertDialog. Список с одиночным выборо

Сообщение klblk » 28 мар 2014, 05:50

DB.java:47

aleksbim
Сообщения: 81
Зарегистрирован: 02 фев 2013, 02:52

Re: Урок 63. Диалоги. AlertDialog. Список с одиночным выборо

Сообщение aleksbim » 28 мар 2014, 11:39

Я еще не знаю, что это значит. Номер стоки в DB? Если да, то как считать, вместе с пустыми (пробелами), вместе с закоментированными?

Аватара пользователя
Foenix
Сообщения: 4201
Зарегистрирован: 20 окт 2012, 12:01

Re: Урок 63. Диалоги. AlertDialog. Список с одиночным выборо

Сообщение Foenix » 28 мар 2014, 12:02

просто два раза щелкни туда.....................................
R.id.team

NullPointerException - что делать???
viewtopic.php?f=33&t=3899&p=28952#p28952
Где моя ошибка?
viewtopic.php?f=60&t=3198

Sardel
Сообщения: 5
Зарегистрирован: 08 апр 2014, 23:22

Re: Урок 63. Диалоги. AlertDialog. Список с одиночным выборо

Сообщение Sardel » 26 май 2014, 02:09

почему не распознает MainActivity???

Код: Выделить всё

  @Override
        public View onCreateView(LayoutInflater inflater, ViewGroup container,
                Bundle savedInstanceState) {
            View rootView = inflater.inflate(R.layout.fragment_main, container, false);
            
            AlertDialog.Builder builder = new AlertDialog.Builder(MainActivity.this);
        	builder.setTitle("Важное сообщение!")
        			.setMessage("Покормите кота!")
        			.setIcon(R.drawable.ic_launcher)
        			.setCancelable(false)
        			.setNegativeButton("ОК, иду на кухню",
        					new DialogInterface.OnClickListener() {
        						public void onClick(DialogInterface dialog, int id) {
        							dialog.cancel();
        						}
        					});
        	AlertDialog alert = builder.create();
        	alert.show();


            return rootView;

Аватара пользователя
klblk
Сообщения: 1097
Зарегистрирован: 18 окт 2012, 11:17
Откуда: г. Красноярск

Re: Урок 63. Диалоги. AlertDialog. Список с одиночным выборо

Сообщение klblk » 26 май 2014, 07:52

Sardel писал(а):почему не распознает MainActivity???

Код: Выделить всё

  @Override
        public View onCreateView(LayoutInflater inflater, ViewGroup container,
                Bundle savedInstanceState) {
            View rootView = inflater.inflate(R.layout.fragment_main, container, false);
            
            AlertDialog.Builder builder = new AlertDialog.Builder(MainActivity.this);
        	builder.setTitle("Важное сообщение!")
        			.setMessage("Покормите кота!")
        			.setIcon(R.drawable.ic_launcher)
        			.setCancelable(false)
        			.setNegativeButton("ОК, иду на кухню",
        					new DialogInterface.OnClickListener() {
        						public void onClick(DialogInterface dialog, int id) {
        							dialog.cancel();
        						}
        					});
        	AlertDialog alert = builder.create();
        	alert.show();


            return rootView;
может быть потому что класс в котором это все происходит называется не MainActivity? Ну и ненужно так делать, если уж хотите создать диалог во фрагменте то и используйте DialogFragment. Урок по нему есть.

Ответить