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

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

Войти
Регистрация
Восстановить пароль
 
Akramjon
0 / 0 / 0
Регистрация: 03.06.2013
Сообщений: 17
#1

Не получается написать запрос для вызова 2 го Voprosa из базы - Программирование Android

08.09.2015, 17:50. Просмотров 240. Ответов 3
Метки нет (Все метки)

Разрабатываю маленький Тест программу. Данный момент 3 категорий в каждом по 3 вопроса. Использую GridView. Категории выходят и в каждом категории выходят первые вопросы из каждой категории. В окне вопросов есть TextVeiw для вопроса, 4 RadioButton для ответов и Button для следующего вопроса, хочу чтобы при нажатии кнопки Button вопрос переходил на второй вопрос. В этом место остановился, не могу продвинуться. Для передачи данных пользуюсь Adapter ом и Loader для загрузки вопросов. Может я в начале что то неправильно написал в запросе баз данных и поэтому не выходит второй вопрос. Подскажите мою ошибку. Покажите пример вызова второго вопроса в OnClick методе. Спасибо.

Запрос вопросов из базы
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
public List<Questions> allQuestions(int id){
        SQLiteDatabase db = this.getReadableDatabase();
        List<Questions> questionses = new ArrayList<Questions>();
        String st = "select * from matem where category_id=" + id;
 
        Cursor cursor = db.rawQuery(st, null);
 
       if (cursor.moveToFirst()){
            do {       Questions questions = new Questions(cursor.getInt(0),
                        cursor.getString(1), cursor.getString(2),
                        cursor.getString(3), cursor.getString(4),
                        cursor.getString(5), cursor.getString(6),
                        cursor.getString(7), cursor.getInt(8), cursor.getInt(9));
                        questionses.add(questions);
            }while (cursor.moveToNext());
       }
        db.close();
        return questionses;
    }
Лоадер вопросов
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
public class QuestionsLoaders extends AsyncTaskLoader<List<Questions>>{
 
    public int id;
 
    public QuestionsLoaders(Context context, int id) {
        super(context);
        this.id=id;
    }
 
    @Override
    public List<Questions> loadInBackground() {
        return new DbHelper(getContext()).allQuestions(id);
    }
}
Адаптер для вопросов
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
78
79
80
81
82
83
84
85
86
public class QuestionsAdapter extends BaseAdapter implements View.OnClickListener, OnCheckedChangeListener {
 
    Context context;
    LayoutInflater inflater;
    DbHelper dbHelper;
 
    Button btn_next;
    RadioGroup radioGroup;
    RadioButton rb,radAns1,radAns2,radAns3,radAns4;;
 
    List<Questions> questionsList;
   
    int nextQ = 0;
    int score = 0;
    int qid = 0;
 
    public QuestionsAdapter() {
 
    }
 
    public QuestionsAdapter(Context context, List<Questions> questionsList) {
        if (questionsList != null) {
            this.questionsList = questionsList;
            this.context = context;
            inflater = (LayoutInflater) this.context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
            dbHelper = new DbHelper(this.context);
        }
    }
 
    @Override
    public int getCount() {
        return questionsList.size();
    }
 
    @Override
    public Object getItem(int position) {
        return questionsList.get(position);
    }
 
    @Override
    public long getItemId(int position) {
        return position;
    }
 
    @Override
    public View getView(final int position, View convertView, ViewGroup parent) {
        final View view = inflater.inflate(R.layout.question_list, null);
        final Questions questions = questionsList.get(position);
 
        final TextView question = (TextView) view.findViewById(R.id.textQuestion);
        question.setText(questions.getVopros());
        final RadioButton radAns1 = (RadioButton) view.findViewById(R.id.radAns1);
        radAns1.setText(questions.getAns_1());
        final RadioButton radAns2 = (RadioButton) view.findViewById(R.id.radAns2);
        radAns2.setText(questions.getAns_2());
        final RadioButton radAns3 = (RadioButton) view.findViewById(R.id.radAns3);
        radAns3.setText(questions.getAns_3());
        final RadioButton radAns4 = (RadioButton) view.findViewById(R.id.radAns4);
        radAns4.setText(questions.getAns_4());
        final TextView textAns = (TextView) view.findViewById(R.id.textAns);
        textAns.setText("Right answer:" + questions.getAns_r());
 
        btn_next = (Button) view.findViewById(R.id.btn_next);
        btn_next.setOnClickListener(this);
        return view;
    }
 
    @Override
    public void onClick(View v) {
 
    }
 
    @Override
    public void onCheckedChanged(RadioGroup radioGroup, int i) {
        switch (i) {
            case R.id.radAns1:
                break;
            case R.id.radAns2:
                break;
            case R.id.radAns3:
                break;
            case R.id.radAns4:
                break;
        }
    }
}
В onClick попробовал много вариантов, просто не получается. Подскажите пожалуйста. Спасибо большое.

Добавлено через 31 минуту
и ещё забыл в OnClick если нажать на Button, RadioButton для выявления по id выдает ошибку
Java
1
2
3
4
5
6
7
@Override
    public void onClick(View v) {
                    radioGroup = (RadioGroup)v.findViewById(R.id.radioGroup);
                    int selectedId = radioGroup.getCheckedRadioButtonId();
                    rb = (RadioButton)v.findViewById(selectedId);
 
    }
указывает на int selectedId = radioGroup.getCheckedRadioButtonId();
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
09-07 16:21:35.636  20401-20401/uz.namanganintellectsoftwaredevelopers.testquiz2 E/AndroidRuntime﹕ FATAL EXCEPTION: main
    java.lang.NullPointerException
            at uz.namanganintellectsoftwaredevelopers.testquiz2.adapter.QuestionsAdapter.onClick(QuestionsAdapter.java:94)
            at android.view.View.performClick(View.java:4084)
            at android.view.View$PerformClick.run(View.java:16966)
            at android.os.Handler.handleCallback(Handler.java:615)
            at android.os.Handler.dispatchMessage(Handler.java:92)
            at android.os.Looper.loop(Looper.java:137)
            at android.app.ActivityThread.main(ActivityThread.java:4745)
            at java.lang.reflect.Method.invokeNative(Native Method)
            at java.lang.reflect.Method.invoke(Method.java:511)
            at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:786)
            at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:553)
            at dalvik.system.NativeStart.main(Native Method)
Добавлено через 21 час 20 минут
не ужели никто не сможет помоч
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
08.09.2015, 17:50
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Не получается написать запрос для вызова 2 го Voprosa из базы (Программирование Android):

Не получается открыть файл - Слишком мало аргументов для вызова функции - C (СИ)
Выдает ошибку &quot;Слишком мало аргументов для вызова функции&quot; void input_array_from_file(double *arr, int *n, char *file_name) { ...

Не получается написать запрос - Delphi БД
Доброго времени суток. Прошу помочь с запросом. Суть в том что нужно сделать sql-запрос к таблице, чтоб выводились только поля с...

Написать SQL запрос, который позволяет выбрать информацию из базы данных - SQL Server
Информацию о водителях авто и выполненную каждым из них количество заказов, которые выполнили наибольшее количество заказов по...

Не получается собрать драйвер для базы данных - C++ Qt
Пытаюсь собрать драйвер ODBC для Qt 5.0.0. Делаю так: cd C:\Qt\Qt5.0.0\5.0.0\Src\qtbase\src\plugins\sqldrivers\odbc\ qmake -o...

Написать запрос, который удалить все записи из базы где, например столбец «А» содержит значение - Delphi БД
Как написать запрос, который удалить все записи из базы где, например столбец «А» содержит значение (Удаленно)

Для базы данных «Автомагазин» создать запрос для определения количества заявок на модель Classic Combi. - MS Access
Очень нужна помощь в решении следующей задачи. 1. Для базы данных «Автомагазин» создать запрос для определения количества заявок на...

3
Mikalai
256 / 232 / 94
Регистрация: 11.01.2015
Сообщений: 656
08.09.2015, 18:01 #2
Цитата Сообщение от Akramjon Посмотреть сообщение
и ещё забыл в OnClick если нажать на Button, RadioButton для выявления по id выдает ошибку
Как я понимаю, в методе onClick(View v), v - это кнопка и ты в кнопке ищешь свой radioGroup. Отсюда и NullPointerException
0
Akramjon
0 / 0 / 0
Регистрация: 03.06.2013
Сообщений: 17
08.09.2015, 18:09  [ТС] #3
как то кнопка должна же знать какую RadioButton она нажимает, несмотря на ответ правильный или нет. Здесь моя проблема не могу решит и с запросом для вызова второго вопроса из базы.
0
Mikalai
256 / 232 / 94
Регистрация: 11.01.2015
Сообщений: 656
08.09.2015, 18:40 #4
Цитата Сообщение от Akramjon Посмотреть сообщение
как то кнопка должна же знать какую RadioButton она нажимает, несмотря на ответ правильный или нет.
Кнопка никого не нажимает. При нажатии кнопки ищи на всей разметке(а не в кнопке) radioGroup.

Java
1
2
3
4
5
6
@Override
    public void onClick(View v) {
                    radioGroup = (RadioGroup) findViewById(R.id.radioGroup);
                    //...
 
    }
1
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
08.09.2015, 18:40
Привет! Вот еще темы с ответами:

Запрос для базы данных - Visual Basic .NET
Помогите сформулировать два запроса для базы данных. Вот скрипт для которого нужны 2 таблицы в базе данных: ...

Не получается составить запрос для хранимой процедуры - SQL Server
Есть таблица Сезоны(,,,,) и таблица Туры(,Цена,Страна,Курорт,Отель) Нужно вывести туры, до начала которых осталось менее 10 дней....

Запрос для базы данных стоматологии - MS Access
Есть база данных стоматологии. Среди прочих таблиц есть таблица &quot;Визиты&quot;, в которой отмечаются номера пациента и специалиста, принявшего...

Не работает запрос UPDATE для базы данных - PHP БД
$query = &quot;UPDATE photo_main SET avatar_link = $avatar WHERE token=$token&quot;; $mysqli-&gt;query($query); echo mysqli_sqlstate($mysqli); ...


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

Или воспользуйтесь поиском по форуму:
4
Yandex
Объявления
08.09.2015, 18:40
Ответ Создать тему
Опции темы

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