Android - Ayuda con Cuestionario en Android (Urge :'c)

   
Vista:
Imágen de perfil de Luna

Ayuda con Cuestionario en Android (Urge :'c)

Publicado por Luna (1 intervención) el 05/06/2016 03:09:30
Hola! n_n Eh necesito ayuda con un proyecto, este debe de hacer un test y dar un resultado, la forma en la que lo pensé es crear cada view para la pregunta y 3 respuestas que se muestran en 3 RadioButtons diferentes, a estos se les asigna un valor numérico del 1 al 3 que se almacena en un contador, este contandor se pasa a la siguiente actividad (pregunta) y se le suma el valor de la respuesta, al final de las 7 preguntas el contador puede tener un valor del 7 al 21, y en base al valor del contador puede mostrar el resultado del Test, por ejemplo del 7 al 10 que de un resultado, del 11 al 18 otro y del 19 al 21 otro. Yo lo pensé de esa forma, pero desconozco si pueda haber otra forma más fácil XD , solo generé un par de preguntas para probar el código y no me marca errores en el compilador, pero a la hora de ejecutar y seleccionar una opción, la aplicación se cierra y manda un error del tipo java.lang.NullPointerException en la línea de mi código donde declaro el contador y le paso un resultado de una activity anterior. precisamente en esta:

" double contador = getIntent().getIntExtra("valor",222 ); "

Cabe mencionar que hace referencia a la clase "pregunta_2" que se las dejo más abajo, pero suppongo que en cualquier actividad marcaría el mismo error, pero lo marca en esta ya que es la primera que usa esa parte.

Quería hacerla así antes de añadirle una de las funciones principales que es que el valor de cada respuesta la guarde en una base de datos en SQLite3, junto con el resultado de cada usuario (con su respectivo login, o sea usuario y contrasña) para graficar....Ahorita me conformo con que se resuelva el cuestionario, les dejo el código para ver si alguien me puede ayudar a encontrar donde está el fallo :(

Código de la primer pregunta

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
import android.content.Intent;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.RadioButton;
import android.widget.RadioGroup;
 
public class MainActivity extends AppCompatActivity {
    RadioGroup rdoRespuestas;
    RadioButton rdoBtn1;
    RadioButton rdoBtn2;
    RadioButton rdoBtn3;
    double contador;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        inicializaComponentes();
    }
    public void inicializaComponentes(){
 
        rdoRespuestas = (RadioGroup)findViewById(R.id.rdoOpciones1);
        rdoBtn1 = (RadioButton)findViewById(R.id.rdoRes1_1);
        rdoBtn2 = (RadioButton)findViewById(R.id.rdoRes2_1);
        rdoBtn3 = (RadioButton)findViewById(R.id.rdoRes3_1);
 
        View.OnClickListener list = new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                switch(view.getId()) {
 
                    case R.id.rdoRes1_1:
 
 
                        contador = 2;
                        Intent opc = new Intent(MainActivity.this,pregunta_2.class);
                        opc.putExtra("valor", contador);
                        startActivityForResult(opc,222);
                        break;
 
                    case R.id.rdoRes2_1:
 
                        contador = 1;
                        Intent opc1 = new Intent(MainActivity.this,pregunta_2.class);
                        opc1.putExtra("valor", contador);
                        startActivityForResult(opc1,222);
                        break;
 
                    case R.id.rdoRes3_1:
 
                        contador = 3;
                        Intent opc2 = new Intent(MainActivity.this,pregunta_2.class);
                        opc2.putExtra("valor", contador);
                        startActivityForResult(opc2,222);
                        break;
                }
            }
        };
 
        rdoBtn1.setOnClickListener(list);
        rdoBtn2.setOnClickListener(list);
        rdoBtn3.setOnClickListener(list);
 
 
    }
 
}

Su view en XML

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
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:paddingBottom="@dimen/activity_vertical_margin"
    android:paddingLeft="@dimen/activity_horizontal_margin"
    android:paddingRight="@dimen/activity_horizontal_margin"
    android:paddingTop="@dimen/activity_vertical_margin"
    android:orientation="vertical"
    >
 
 
    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:textSize="25dp"
        android:text="Pregunta 1
        " />
 
    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Un maestro Jedi se presenta en tu casa para decirte que eres sensible a la Fuerza, te llevará al Templo Jedi y te entrenará como Padawan. Sabes que para poder hacer esto tienes que dejar tu familia atrás, ¿cómo reaccionarías?
        "
        android:textSize="18dp"/>
    <RadioGroup
        android:id="@+id/rdoOpciones1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:orientation="vertical">
    <RadioButton
        android:id="@+id/rdoRes1_1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Te costaría trabajo aceptarlo debido al miedo y la confusión del momento, pero aceptarías ya que supones que es tu destino

        "
        />
    <RadioButton
        android:id="@+id/rdoRes2_1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="El apego a tu familia y el hecho de que probablemente no los vuelvas a ver te enfada, pero sabes que si quieres aprender a usar el poder de la Fuerza es un sacrificio que debes tomar.

        "
        />
    <RadioButton
        android:id="@+id/rdoRes3_1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Pese a que sabes que quizás no veas más a tu familia, te sientes honrado por ser parte de algo más, te despedirías de tu familia y emprenderías tu viaje sin mirar atrás.
        "
        />
    </RadioGroup>
 
</LinearLayout>

Codigo de la segunda pregunta

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
import android.content.Intent;
import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.view.View;
import android.widget.RadioButton;
import android.widget.RadioGroup;
 
public class pregunta_2 extends AppCompatActivity {
    RadioGroup rdoRespuestas;
    RadioButton rdoBtn1;
    RadioButton rdoBtn2;
    RadioButton rdoBtn3;
    double contador = getIntent().getIntExtra("valor",222 );
 
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.pregunta_2);
 
        inicializaComponentes();
 
    }
 
    public void inicializaComponentes(){
 
        rdoRespuestas = (RadioGroup)findViewById(R.id.rdoOpciones1);
        rdoBtn1 = (RadioButton)findViewById(R.id.rdoRes1_2);
        rdoBtn2 = (RadioButton)findViewById(R.id.rdoRes2_2);
        rdoBtn3 = (RadioButton)findViewById(R.id.rdoRes3_2);
 
        View.OnClickListener list = new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                switch(view.getId()) {
 
                    case R.id.rdoRes1_2:
                        contador = contador + 1;
                        Intent opc = new Intent(pregunta_2.this,resultado.class);
                        opc.putExtra("valor", contador);
                        startActivityForResult(opc,138);
                        break;
 
                    case R.id.rdoRes2_2:
 
                        contador = contador+2;
                        Intent opc1 = new Intent(pregunta_2.this,resultado.class);
                        opc1.putExtra("valor", contador);
                        startActivityForResult(opc1,138);
                        break;
 
                    case R.id.rdoRes3_2:
 
                        contador = contador+3;
                        Intent opc2 = new Intent(pregunta_2.this,resultado.class);
                        opc2.putExtra("valor", contador);
                        startActivityForResult(opc2,138);
                        break;
                }
            }
        };
 
        rdoBtn1.setOnClickListener(list);
        rdoBtn2.setOnClickListener(list);
        rdoBtn3.setOnClickListener(list);
 
 
    }
}

Su view de la pregunta 2en XML

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
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
 
    android:paddingBottom="@dimen/activity_vertical_margin"
    android:paddingLeft="@dimen/activity_horizontal_margin"
    android:paddingRight="@dimen/activity_horizontal_margin"
    android:paddingTop="@dimen/activity_vertical_margin"
    android:orientation="vertical" android:layout_width="match_parent"
    android:layout_height="match_parent">
 
    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:textSize="25dp"
        android:text="Pregunta 2
       " />
 
    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Durante tu entrenamiento conoces al quien crees que podría ser el amor de tu vida, el código Jedi prohíbe las relaciones amorosas, ¿qué harías al respecto?
        "
        android:textSize="18dp"/>
    <RadioGroup
        android:id="@+id/rdoOpciones2"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:orientation="vertical">
    <RadioButton
        android:id="@+id/rdoRes1_2"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Las emociones pueden ser peligrosas, ya que estas pueden llevar al lado oscuro, sería un riesgo muy alto que no merecería la pena correr.

        "
        />
    <RadioButton
        android:id="@+id/rdoRes2_2"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Quizás podría experimentar un poco antes de convertirme en Maestro Jedi, pese a todo la vida debe vivirse plenamente.

        "
        />
    <RadioButton
        android:id="@+id/rdoRes3_2"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Nadie tiene que enterarse de la relación. Aunque si esa persona me distrae de mi objetivo de alcanzar el poder através de la Fuerza, no dejaría que se pusiera en mi camino.
        "
        />
    </RadioGroup>
 
</LinearLayout>


Como podrán ver no tiene mucho chiste pero no lo puedo hacer correr :( Desconozco si lo del resultado si lo haga por el error que les digo que me manda D:

La parte de la base de datos la había pensado que en el metodo de cada RadioButton escribiera dicho valor en el respectivo campo de la BD, pero aún no he implementado esa parte ya que ni siquiera puedo hacer que jale sin BD :/

Les agradecería cualquier AYUDA que me puedan dar, mil gracias por leerse tremendo chorizote!! XD :'3

PD: Omitan lo friki que pueda ser mi test :'I No se me ocurrió otra cosa :P
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder