Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

Problema na hora de inserir dados SQLite

Tenho um banco de dados desta forma:

 String carroSQL = "CREATE TABLE Carro (carro_id INTEGER PRIMARY KEY, carro_nome TEXT NOT NULL);";
        String carroPerguntaSQL = "CREATE TABLE CarroPergunta (cpergunta_id INTEGER PRIMARY KEY, cpergunta TEXT NOT NULL);";
        String carroRespostaSQL = "CREATE TABLE CarroResposta (cresposta_id INTEGER PRIMARY KEY," +
                "idCarro INTEGER REFERENCES Carro(carro_id)," +
                "idPergunta INTEGER REFERENCES CarroPergunta(cpergunta_id)," +
                "cresposta_desc TEXT);";

Estou fazendo a inserção de resposta atraves deste metodo:

    public void inserir(RespostaCarro resposta) {
        ContentValues values = new ContentValues();
            values.put("idCarro", resposta.getIdCarro());
            values.put("idPergunta", resposta.getIdPergunta());
            values.put("cresposta_desc", resposta.getResposta());
        dao.getWritableDatabase().insert("CarroResposta", null, values);
    }

E reconhecendo os dados desta forma:

public class InspecaoActivity extends AppCompatActivity {

    private TextView nomeInsp, campoPergunta,idCarro,idPergunta;
    private int indicePerguntaAtual = 0;
    private Button proximaPergunta;
    private PerguntaCarro perguntaAtual;
    private RadioButton c,nc,na;
    private RadioGroup rg;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_inspecao);

        setTitle("");

        carregaNomeDoCheckList();
        criarComponentes();

    }

    private void botaoProximo() {
        proximaPergunta = findViewById(R.id.proximaPergunta);
        proximaPergunta.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                responde();
            }
        });
    }

    private void atualizaFormularioComPerguntaAtual() {
        RespostaCarro resposta = new RespostaCarro();
        pCarroDAO dao = new pCarroDAO(InspecaoActivity.this);
        List<PerguntaCarro> perguntas = dao.buscaPerguntaCarro();

        if (indicePerguntaAtual < perguntas.size()) {
            perguntaAtual = perguntas.get(indicePerguntaAtual);

            campoPergunta.setText(perguntaAtual.getPergunta());
            idPergunta.setText(perguntaAtual.getId().toString());

            resposta.setIdCarro(Long.valueOf(idCarro.getText().toString()));
            resposta.setIdPergunta(Long.valueOf(idPergunta.getText().toString()));

                if (c.isChecked()) {
                    resposta.setResposta(c.getText().toString());
                } else if (nc.isChecked()) {
                    resposta.setResposta(nc.getText().toString());
                } else {
                    resposta.setResposta(na.getText().toString());
                }

            dao.inserir(resposta);
        }else{
            finish();
        }

    }

    public void responde() {
        indicePerguntaAtual++;
        atualizaFormularioComPerguntaAtual();
    }

    @Override
    protected void onResume() {
        super.onResume();
        atualizaFormularioComPerguntaAtual();
        botaoProximo();
    }

    private void criarComponentes() {
        idCarro = findViewById(R.id.idCarro);
        idPergunta = findViewById(R.id.idPergunta);
        nomeInsp = findViewById(R.id.nomeInsp);
        campoPergunta = findViewById(R.id.pergunta);
        proximaPergunta = findViewById(R.id.proximaPergunta);
        campoPergunta = findViewById(R.id.pergunta);
        c = findViewById(R.id.conforme);
        nc = findViewById(R.id.nConforme);
        na = findViewById(R.id.nSeAplica);
        rg = findViewById(R.id.radioGroup);
    }


    private void carregaNomeDoCheckList() {
        if (nomeInsp != null) {
            Intent intent = getIntent();
            Inspecao inspecao = (Inspecao) intent.getSerializableExtra("nome");
            nomeInsp = findViewById(R.id.nomeInsp);
            nomeInsp.setText(inspecao.getNome());
        } else {
            Intent intent = getIntent();
            Carro carro = (Carro) intent.getSerializableExtra("carro");
            nomeInsp = findViewById(R.id.nomeInsp);
            nomeInsp.setText(carro.getNome());
            idCarro = findViewById(R.id.idCarro);
            idCarro.setText(carro.getId().toString());
        }
    }
}

Eu consigo inserir as respostas normalmente, entretanto a resposta da pergunta 1 não fica salva corretamente, ela sempre vai para pergunta 2 ou então para a ultima pergunta.

1 resposta
solução!

Exemplo:

"1"    "1"    "N/A"
"1"    "2"    "Conforme"
"1"    "3"    "Conforme"
"1"    "4"    "Conforme"
"1"    "5"    "Conforme"
"1"    "6"    "Conforme"
"1"    "7"    "Conforme"
"1"    "8"    "Conforme"
"1"    "9"    "Conforme"
"1"    "10"    "Conforme"
"1"    "11"    "Conforme"
"1"    "12"    "Conforme"
"1"    "13"    "Conforme"
"1"    "14"    "Conforme"
"1"    "15"    "Conforme"

Esse "N/A" deveria estar na resposta "15" e não na "1".

O que estou errando??