Форум программистов, компьютерный форум, киберфорум
Наши страницы

Программирование Android

Войти
Регистрация
Восстановить пароль
 
 
Рейтинг: Рейтинг темы: голосов - 10, средняя оценка - 4.60
RayPas
2 / 0 / 0
Регистрация: 18.01.2013
Сообщений: 370
#1

Работа с БД, связывание таблиц "фильмы", "жанры", "режиссеры" - Программирование Android

16.08.2015, 22:01. Просмотров 1592. Ответов 48
Метки нет (Все метки)

Ребят, всем привет! накидайте какие-нить идеи по реализации

ситуация такая есть таблицы - "списки_жанров", "фильмы", "режиссеры"
мне нужно на актитиви с добавлением фильмов иметь такие поля

поле для ввода названия_фильма
дропдаун со списком имеющихся жанров
дропдаун со списком имеющихся режиссеров

то есть задача прикрепить определенный фильм к определенному режиссеру и жанру
знаю, что вместо дропдауна тут используется Spinner кажется, но как осуществить все остальное не в курсе, знаю как это делается в asp.net , а тут полный ноль, подскажите идейки, главная трабл, что не представляю как выбрать списки жанров и режиссеров из таблиц
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
16.08.2015, 22:01
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Работа с БД, связывание таблиц "фильмы", "жанры", "режиссеры" (Программирование Android):

Ошибка "Unknown method "e" of "org.apache.commons.logging.Log" - Программирование Android
Unknown method 'e' of 'org.apache.commons.logging.Log' package com.mycompany.myapp; import android.widget.*; import...

Постепенно вывести на экран слово "Java", в котором буквы состоят из "интересных" элементов - Программирование Android
Я учусь в универе и вот пытаюсь делать лабораторные по языку java, только на свой телефон с помощью android studio )) До этого все...

Выбор платформы разработки "1С Мобильная платформа" или "Android Studio" - Программирование Android
Всем, здравствуйте! Есть задача по разработке клиента для терминала сбора данных. Для использования его c WMS. После долгих раздумий было...

При эмулировании вместо надписи "Hello world" отображается "android" - Программирование Android
Привет форумчане! Я только-только начинал программировать на андроиде. Поставил среду, все настроил как на google.developers . Когда...

Как "превратить" string "6.971245e-001" во float? - Программирование Android
Число конечно пример

Как прикрутить "свой браузер" к странице - "фрагмент" - Программирование Android
здравствуйте. все, уже голову сломал. не соображаю совсем. не получается прикрутить код браузера к странице fragments.выводиться должно на-...

48
Digetix
104 / 104 / 1
Регистрация: 09.04.2012
Сообщений: 651
17.08.2015, 00:35 #2
http://startandroid.ru/ru/uroki/vse-...juschij-spisok
0
Rube
911 / 559 / 88
Регистрация: 13.02.2014
Сообщений: 2,072
17.08.2015, 10:36 #3
Присваиваешь каждому итему свой id, столбцы таблиц будут в виде:
id_N - Название - id_R - id_G
id_R - Режиссер
id_G - Жанр
Выбираешь фильму, режиссера и жанр, кликаешь ОК - выполняется sql - UPDATE [таблица] SET... WHERE id_N =... .
0
RayPas
2 / 0 / 0
Регистрация: 18.01.2013
Сообщений: 370
17.08.2015, 14:59  [ТС] #4
Rube, уже сделал)
скажите, не знаете как отсюда получить ЗНАЧЕНИЯ элемента, мне в spinner попадает имя столбца COLUMN_LNAME, а не его значения. заранее благодарен

Java
1
2
3
4
5
6
7
8
9
10
db = sqlHelper.getReadableDatabase();
            userCursor = db.rawQuery("select * from " + DatabaseHelper.TABLE, null);
            String[] headers = new String[]{DatabaseHelper.COLUMN_LNAME};
 
            Spinner spinner = (Spinner) rootView.findViewById(R.id.spinner_authors);
            // заголовок
            spinner.setPrompt("Choose the list");
            ArrayAdapter<String> LTRadapter = new ArrayAdapter<String>(this.getActivity(), android.R.layout.simple_spinner_item, headers);
            LTRadapter.setDropDownViewResource(android.R.layout.simple_dropdown_item_1line);
            spinner.setAdapter(LTRadapter);
0
Rube
911 / 559 / 88
Регистрация: 13.02.2014
Сообщений: 2,072
17.08.2015, 16:04 #5
Лучший ответ Сообщение было отмечено автором темы, экспертом или модератором как ответ
headers циклом по записям курсора надо заполнить значениями
1
RayPas
2 / 0 / 0
Регистрация: 18.01.2013
Сообщений: 370
17.08.2015, 17:53  [ТС] #6
Rube,
Java
1
2
3
4
5
6
7
String[] headers = new String[]{DatabaseHelper.COLUMN_LNAME};
            for (int i=0; i<userCursor.getCount();i++) {
              headers[i] = String.valueOf(userCursor.getColumnCount());
            }
                ArrayAdapter<String> LTRadapter = new ArrayAdapter<String>(this.getActivity(), android.R.layout.simple_spinner_item, headers);
                LTRadapter.setDropDownViewResource(android.R.layout.simple_dropdown_item_1line);
                spinner.setAdapter(LTRadapter);
выдаетошибку
Caused by: java.lang.ArrayIndexOutOfBoundsException: length=1; index=1
at com.example.scinolib2.AddBookActivity$PlaceholderFragment.onCreateView(AddBookActivity.java:119)
0
Mikalai
261 / 237 / 95
Регистрация: 11.01.2015
Сообщений: 663
17.08.2015, 18:07 #7
Вместо
Java
1
String[] headers = new String[]{DatabaseHelper.COLUMN_LNAME};
напиши
Java
1
String[] headers = new String[userCursor.getCount()];
0
RayPas
2 / 0 / 0
Регистрация: 18.01.2013
Сообщений: 370
17.08.2015, 18:12  [ТС] #8
Mikalai, Caused by: java.lang.ArrayIndexOutOfBoundsException: length=3; index=3
такая ошибка в теле цикле теперь

Добавлено через 2 минуты
Mikalai, и каким образом я сообщу какие именно столбцы мне нужны
0
Mikalai
261 / 237 / 95
Регистрация: 11.01.2015
Сообщений: 663
17.08.2015, 18:30 #9
Массив headers будет отображаться в твоём spinner. В цикле тебе нужно достать из курсора нужные элементы и вставить в массив, как я понял.
0
RayPas
2 / 0 / 0
Регистрация: 18.01.2013
Сообщений: 370
17.08.2015, 18:34  [ТС] #10
Mikalai, цикл один раз выполняется и вылетает с ошибкой, хотя в соunt правильно считает элементы
0
Mikalai
261 / 237 / 95
Регистрация: 11.01.2015
Сообщений: 663
17.08.2015, 18:44 #11
покажи весь код, ошибку и сроку пометь где она появляется
0
RayPas
2 / 0 / 0
Регистрация: 18.01.2013
Сообщений: 370
17.08.2015, 18:54  [ТС] #12
Mikalai, цикл один раз выполняется и вылетает с ошибкой, хотя в соunt правильно считает элементыMikalai,

Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
Spinner spinner = (Spinner) rootView.findViewById(R.id.spinner_authors);
            // заголовок
            spinner.setPrompt("Choose the list");
            db = sqlHelper.getReadableDatabase();
            userCursor = db.rawQuery("select * from " + DatabaseHelper.TABLE,null);
            String[] headers = new String[]{DatabaseHelper.COLUMN_LNAME};
 
            String[] h = new String[]{};
            for (int i=0; i<=userCursor.getCount();i++) {
                h[i] = String.valueOf(userCursor.getCount());
            }
                ArrayAdapter<String> LTRadapter = new ArrayAdapter<String>(this.getActivity(), android.R.layout.simple_spinner_item, h);
                LTRadapter.setDropDownViewResource(android.R.layout.simple_dropdown_item_1line);
                spinner.setAdapter(LTRadapter);
ошибка СТРОКА 10
Caused by: java.lang.ArrayIndexOutOfBoundsException: length=0; index=0
at com.example.scinolib2.AddBookActivity$PlaceholderFragment.onCreateView(AddBookActivity.java:121)
0
Mikalai
261 / 237 / 95
Регистрация: 11.01.2015
Сообщений: 663
17.08.2015, 19:08 #13
ты же создаешь массив без элементов, а обращаться пытаешься к его элементу с индексом 0.
0
RayPas
2 / 0 / 0
Регистрация: 18.01.2013
Сообщений: 370
17.08.2015, 19:11  [ТС] #14
Mikalai,
Java
1
2
3
4
5
6
7
8
9
userCursor = db.rawQuery("select * from " + DatabaseHelper.TABLE, null);
            String[] headers = new String[]{DatabaseHelper.COLUMN_LNAME};
 
            for (int i=0; i<=userCursor.getCount();i++) {
                headers[i] = String.valueOf(userCursor.getCount());
            }
                ArrayAdapter<String> LTRadapter = new ArrayAdapter<String>(this.getActivity(), android.R.layout.simple_spinner_item, headers);
                LTRadapter.setDropDownViewResource(android.R.layout.simple_dropdown_item_1line);
                spinner.setAdapter(LTRadapter);
ошибка та же на той же строке
0
Mikalai
261 / 237 / 95
Регистрация: 11.01.2015
Сообщений: 663
17.08.2015, 19:17 #15
ошибка та же, но пишет там наверное - java.lang.ArrayIndexOutOfBoundsException: length=1; index=1

Объясни нормально, что ты хочешь достать из базы и засунуть в спинер? это строки или числа? Как называется КОЛОНКА из которой ты хочешь достать информацию.
0
17.08.2015, 19:17
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
17.08.2015, 19:17
Привет! Вот еще темы с ответами:

Что означают конструкции "finally" и "throw new"? - Программирование Android
Я с Java уже давно, но с этим столкнулся в первый раз. Объясните, пожалуйста, что означают вот это &quot;finally&quot; и &quot;throw new&quot;. Вот пример...

блокирование кнопок "Home" "Back" - Программирование Android
Доброго времени. собственно вопрос сл. можно ли заблокировать или каким либо образом отключить возможность нажатия пользования кнопок...

Ошибка "Gradle"MyApplication" projectrefresh failed - Программирование Android
Всем доброго вечера. Только начинаю писать под андроид, и на одном из первых этапов возникла такая ошибка. Создал проект (эмулятор не...

Наилучший способ хранения "таблиц в таблицах" - Программирование Android
Не знал, как правильней назвать тему, вышло так:) На тему нижеописанного приложения я уже начинал тему на форуме, но сейчас уже дело...


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

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

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