Problem con ArrayList (Java/Android)

AvkZ

Buenas a todos.

El caso es que tengo que hacer una aplicacion para Android basada en Java y sobre el entorno de Eclipse ADT y no consigo llevar a cabo esta tonteria ya que pocas veces he usado Arrays y llevo poco programando.

Se trata de una aplicacion sencilla que te hace una serie de preguntas y tu debes responderlas correctamente, de este modo ganas vidas o fallos según tu contestacion.

He declarado un Array de 4 elementos, tanto para las preguntas como para las respuestas pero no consigo vincularlo entre sí para que salgan por pantalla en mi campo de texto "pregunta" y en función de si es la correcta o no (posicion del array correspondiente) sume un acierto al contador equivalente

De momento solo tengo esto puesto que estoy estancado y por eso estoy aqui xD

package com.dia2.alvaro;

import java.util.ArrayList;

import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.EditText;
import android.widget.RelativeLayout;
import android.widget.TextView;
import android.widget.Toast;

public class MainActivity extends Activity implements OnClickListener{
    RelativeLayout contenedor;
    int aciertos = 0;
    int fallos = 0;
    int n = 0;
    ArrayList<String> arrayPreguntas;
    ArrayList<String> arrayRespuestas;
    EditText contestacion;
    TextView pregunta;
    Button acertar, pasar, reiniciar;
    
@Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); referenciasVistas(); pregunta.setText(arrayPreguntas.indexOf(n)); ArrayList<String> arrayPreguntas = new ArrayList<String>(); ArrayList<String> arrayRespuestas = new ArrayList<String>(); arrayPreguntas.add("¿Se dice 'Elije' o 'Elige'?"); arrayPreguntas.add("Capital de Estonia"); arrayPreguntas.add("Iniciales del rey actual"); arrayPreguntas.add("El oeste se sitúa a lado.."); arrayRespuestas.add("Elige"); arrayRespuestas.add("Tallin"); arrayRespuestas.add("JC"); arrayRespuestas.add("Izquierdo"); } private void referenciasVistas(){ contestacion = (EditText)findViewById(R.id.contestacion); pregunta = (TextView)findViewById(R.id.pregunta); acertar = (Button)findViewById(R.id.Acertar); acertar.setOnClickListener(this); pasar = (Button)findViewById(R.id.pasar); pasar.setOnClickListener(this); reiniciar = (Button)findViewById(R.id.reiniciar); reiniciar.setOnClickListener(this); } @Override public void onClick(View v){ switch(v.getId()){ case R.id.Acertar: String respuesta = contestacion.getText().toString(); if (arrayRespuestas.contains(respuesta)){ aciertos++;};break; } }
}

No consigo hacer que se visualice ningun elemento de mi array de preguntas en el campo de la pregunta y aun me faltaria hacer el caso del switch para el boton de "Pasar de pregunta" y que sumara uno al contador de fallos.

Aver si me podeis echar un cable por aqui. Gracias!

Khanser

Y el codigo con el que intentas pintar las preguntas en el boton o el campo?

1 respuesta
AvkZ

#2 No lo he puesto todo el codigo del proyecto para ir a lo concreto que es el array. Cada boton, texto y edittext estan ya declarados y con su evento de escucha asignado para llevar a cabo la accion del switch.

#4 #5 Teneis razon, debi copiar el codigo completo. Ya lo he editado con todo el codigo que tengo ahora mismo. Ahora de repente no sé que he tocado pero no me abre la aplicacion, me da como error: java.lang.NullPointerException

1 respuesta
Khanser

#3 Pero si lo que no va es la visualización del array el problema es posible que radique en dónde intentas hacer el renderizado de los botones, texto y lo que sea, no crees?

PD: Acabo de ver ese pregunta.setText de que tipo es el objeto pregunta?

1 respuesta
Gollumiko

#1 supongo que habrás instanciado cada array, ¿no?

es decir:

ArrayList<String> arrayPreguntas = new ArrayList<String>();
ArrayList<String> arrayRespuestas= new ArrayList<String>();

ademas que estoy viendo que obtienes un elemento del arrayPreguntas antes de añadir nada. Si puedes pega más código porque poco se ve de lo que estés haciendo ahí.

1 respuesta
Khanser

Esto.. el codigo "pregunta.setText(arrayPreguntas.indexOf(n));" No deberia ir despues de inicializar los ArrayLists?

1
kraneok

#1 ¿ De donde viene n ?, del método indexOf del arrayPreguntas.
Ah vale, ya lo vi, perdón.

#1
indexOf(Object o)
Returns the index of the first occurrence of the specified element in this list, or -1 if this list does not contain the element.

Utiliza el método get.

Por cierto, pasandole un int a indexOf no te peta?

Usuarios habituales

  • kraneok
  • Khanser
  • Gollumiko
  • AvkZ