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

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

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

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

16.08.2015, 22:01. Просмотров 1510. Ответов 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
RayPas
2 / 0 / 0
Регистрация: 18.01.2013
Сообщений: 370
17.08.2015, 19:21  [ТС] #16
Mikalai, я хочу достать значения из таблицы TABLE столбца COLUMN_LNAME, это строки.
0
Mikalai
260 / 236 / 95
Регистрация: 11.01.2015
Сообщений: 663
17.08.2015, 19:29 #17
Вот так попробуй
Java
1
2
3
4
5
String[] headers = new String[userCursor.getCount()];
 
        for (int i=0; i < userCursor.getCount();i++) {
            headers[i] = userCursor.getString(userCursor.getColumnIndex(DatabaseHelper.COLUMN_LNAME));
        }
0
RayPas
2 / 0 / 0
Регистрация: 18.01.2013
Сообщений: 370
17.08.2015, 19:32  [ТС] #18
Mikalai,сдвиги есть, но пишет такую ошибку
Caused by: android.database.CursorIndexOutOfBoundsException: Index -1 requested, with a size of 4

на теле цикла выкидывает опять
0
Mikalai
260 / 236 / 95
Регистрация: 11.01.2015
Сообщений: 663
17.08.2015, 19:39 #19
Лучший ответ Сообщение было отмечено автором темы, экспертом или модератором как ответ
Я уже сам не соображаю какую чушь пишу )))
Вот так примерно нужно:

Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
userCursor = db.rawQuery("select * from " + DatabaseHelper.TABLE, null);
 
            List<String> headers = new ArrayList<>();
            if (userCursor != null) {
                if (userCursor.moveToFirst()) {
                    do {
                        String string = userCursor.getString(userCursor.getColumnIndex(DatabaseHelper.COLUMN_LNAME));
                        headers.add(string);
                    } while (userCursor.moveToNext());
                }
            } else {
                return;
            }
 
        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);
1
RayPas
2 / 0 / 0
Регистрация: 18.01.2013
Сообщений: 370
17.08.2015, 19:55  [ТС] #20
Mikalai, огромное спасибо, что не бросили!!))))
правда return убрал, с ним не работало)
0
Rube
911 / 559 / 88
Регистрация: 13.02.2014
Сообщений: 2,071
17.08.2015, 20:06 #21
http://stackoverflow.com/questions/2...sor-in-android
1
RayPas
2 / 0 / 0
Регистрация: 18.01.2013
Сообщений: 370
18.08.2015, 02:05  [ТС] #22
Mikalai, раз пошла такая тема, не подскажите как из спиннера получить id выбранного элемента?(нужно для раздления связи мног око многим, пишу ключи по разным таблица)

пытаюсь сделать такую байду, а он мне пишет что в айдишниках a_id и l_id пусто(а это как раз ай ди выбранного из спиннеров жанра и режиссера)

Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
public void onClick(View v) {
                    ContentValues cv = new ContentValues();
                    ContentValues cv1 = new ContentValues();
 
                    cv.put(DatabaseHelper.COLUMN_LID, spinner_list.getSelectedItemId());
                    cv.put(DatabaseHelper.COLUMN_BNAME, bookBox.getText().toString());
                    cv1.put(DatabaseHelper.COLUMN_BID, bookBox.getId());
                    cv1.put(DatabaseHelper.COLUMN_AID, spinner_author.getSelectedItemId());
 
                    if (id > 0) {
                        db.update(DatabaseHelper.TABLE1, cv, DatabaseHelper.COLUMN_ID1 + "=" + String.valueOf(id), null);
                    } else {
                        db.insert(DatabaseHelper.TABLE1, null, cv);
                        db.insert(DatabaseHelper.TABLE3, null, cv1);
 
                    }
0
Rube
911 / 559 / 88
Регистрация: 13.02.2014
Сообщений: 2,071
18.08.2015, 07:18 #23
Java
1
2
3
4
5
6
spinner.setOnItemSelectedListener(new OnItemSelectedListener() {
        @Override
        public void onItemSelected(AdapterView<?> parentView, View view, int position, long id) {
            TextView tv= (TextView) view.findViewById(R.id.text1);
            Log.d("", tv.getText() + "; " + position + "; " + id);
}
0
RayPas
2 / 0 / 0
Регистрация: 18.01.2013
Сообщений: 370
18.08.2015, 12:49  [ТС] #24
Rube, выдает ошибку
java.lang.NullPointerException
at com.example.scinolib2.AddBookActivity$PlaceholderFragment$1.onItemSelected(AddBookActivity.java:129)
хотя я даже еще не успеваю нажать на какой -либо элемент из списка
0
Rube
911 / 559 / 88
Регистрация: 13.02.2014
Сообщений: 2,071
18.08.2015, 13:05 #25
RayPas, это я только пример привел, а вы его переделайте на свой лад.
0
Mikalai
260 / 236 / 95
Регистрация: 11.01.2015
Сообщений: 663
18.08.2015, 13:58 #26
RayPas, если нужно в методе onClick использовать позицию спинера, то можно обратить внимание на следующий метод:

Java
1
spinner.getFirstVisiblePosition();
0
RayPas
2 / 0 / 0
Регистрация: 18.01.2013
Сообщений: 370
18.08.2015, 15:35  [ТС] #27
Mikalai, ребят, я кажется сам запутался и вас запутал и только осознал, отслеживание клика поставить удалось, но это не совсем то, что мне нужно, а точнее совсем не то, он отображает мне позиции и id прямо из спиннера, тогда как мне нужны ID из таблицы БД...так вообще возможно организовать?!
0
Миниатюры
Работа с БД, связывание таблиц "фильмы", "жанры", "режиссеры"  
Mikalai
260 / 236 / 95
Регистрация: 11.01.2015
Сообщений: 663
18.08.2015, 16:01 #28
Получи значение элемента спинера и сделай запрос в базу или сам поищи в оставшемся курсоре.
1
RayPas
2 / 0 / 0
Регистрация: 18.01.2013
Сообщений: 370
18.08.2015, 17:16  [ТС] #29
Mikalai, написал такой обработчик
Java
1
2
3
4
5
6
7
8
9
 spinner_list.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
                public void onItemSelected(AdapterView<?> parent, View view, int pos, long id) {
                    Object item = parent.getItemAtPosition(pos);
                    Cursor cursor = db.rawQuery("select _id from " + DatabaseHelper.TABLE + " where " + DatabaseHelper.COLUMN_LNAME + "=?", new String[]{item.toString()});
                }
 
                public void onNothingSelected(AdapterView<?> parent) {
                }
            });
но значения нужно положить в другой функции, котороая срабатывает на кнопку сохранения, не знаю как туда положить результат теперь...

Java
1
2
3
4
5
6
7
8
9
10
saveButton.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View v) {
                    ContentValues cv = new ContentValues();
                    ContentValues cv1 = new ContentValues();
 
                    cv.put(DatabaseHelper.COLUMN_LID, spinner_list.getSelectedItemId());
                    cv.put(DatabaseHelper.COLUMN_BNAME, bookBox.getText().toString());
                    cv1.put(DatabaseHelper.COLUMN_BID, bookBox.getId());
                    cv1.put(DatabaseHelper.COLUMN_AID, spinner_author.getSelectedItemId()); }
значения по идеи нужно положить вместо
Java
1
spinner_list.getSelectedItemId()
0
Mikalai
260 / 236 / 95
Регистрация: 11.01.2015
Сообщений: 663
18.08.2015, 17:38 #30
RayPas, покажи весь класс
0
18.08.2015, 17:38
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
18.08.2015, 17:38
Привет! Вот еще темы с ответами:

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

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

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

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


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

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

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