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?