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

Carregar dados de diferentes modos em outra tela

Tenho um banco da seguinte 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 com uma unica tela passando as perguntas cadastradas para as mesmas receberem a resposta. Porém não sei como passo o código do carro e da pergunta para que salve as respostas de forma correta.

public List<PerguntaCarro> buscaPerguntaCarro() {
        List<PerguntaCarro> perguntas = new ArrayList<>();
        Cursor c = dao.getReadableDatabase().rawQuery("SELECT cpergunta FROM CarroPergunta",null);
            while (c.moveToNext()){
                PerguntaCarro p = new PerguntaCarro();
                    p.setPergunta(c.getString(c.getColumnIndex("cpergunta")));
                 perguntas.add(p);
            }c.close();
            return perguntas;
    }
public class InspecaoActivity extends AppCompatActivity {

    private TextView nomeInsp, campoPergunta,campoId;
    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();


        atualizaFormularioComPerguntaAtual();

        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 = findViewById(R.id.pergunta);
        campoPergunta.setText(perguntaAtual.getPergunta());

        }else{
            finish();
        }
    }


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

            private void criarComponentes() {
                nomeInsp = findViewById(R.id.nomeInsp);
                campoPergunta = findViewById(R.id.pergunta);
                proximaPergunta = findViewById(R.id.proximaPergunta);
                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) {
                    carregaNomeInspecao();
                } else {
                    Intent intent = getIntent();
                    Carro carro = (Carro) intent.getSerializableExtra("carro");
                    nomeInsp = findViewById(R.id.nomeInsp);
                    nomeInsp.setText(carro.getNome());
                }
            }


            private void carregaNomeInspecao() {
                Intent intent = getIntent();
                Inspecao inspecao = (Inspecao) intent.getSerializableExtra("nome");
                nomeInsp = findViewById(R.id.nomeInsp);
                nomeInsp.setText(inspecao.getNome());
            }
        }

Como devo prosseguir?

1 resposta
solução!

Resolvido