3
respostas

Como passar dados de 3 activitys para o banco?

O usuário irá colocar seus dados em um total de 3 activitys, e preciso colocar os dados das 3 no SQLite. Como deveria fazer, seguindo o padrão das aulas? No código coloquei todos os dados que deverão ser preenchidos na mesma classeHelper

public class AgendarHelper {

    private final EditText campoEndereco;
    private final EditText campoNumero;
    private final EditText campoComplemento;
    private final EditText campoBairro;
    private final CalendarView campoData;
    private final Spinner campoHorario;
    private final Spinner campoCategoria;
    private final Spinner campoSubCategoria;
    private final ImageView campoFoto;
    private final EditText campoQuantidade;


    public AgendarHelper(EnderecoActivity activity){
        campoEndereco = (EditText) activity.findViewById(R.id.agenda_endereco);
        campoNumero = (EditText) activity.findViewById(R.id.agenda_numero);
        campoComplemento = (EditText) activity.findViewById(R.id.agenda_complemento);
        campoBairro = (EditText) activity.findViewById(R.id.agenda_bairro);
        campoData = (CalendarView) activity.findViewById(R.id.agenda_calendario);
        campoHorario = (Spinner) activity.findViewById(R.id.spHorario);
        campoCategoria = (Spinner) activity.findViewById(R.id.spCategoria);
        campoSubCategoria = (Spinner) activity.findViewById(R.id.spSubCategoria);
        campoFoto = (ImageView) activity.findViewById(R.id.exibeFoto);
        campoQuantidade = (EditText) activity.findViewById(R.id.agenda_quantidade);
        Log.d("testeb","1 helper");

    }



    public Agenda pegaAgenda() {
        Agenda agenda = new Agenda();
        agenda.setEndereco(campoEndereco.getText().toString());
        agenda.setNumero(Integer.valueOf(campoNumero.getText().toString()));
        agenda.setComplemento(campoComplemento.getText().toString());
        agenda.setBairro(campoBairro.getText().toString());
        agenda.setData(String.valueOf(campoData));
        agenda.setHorario(String.valueOf(campoHorario));
        agenda.setCategoria(String.valueOf(campoCategoria));
        agenda.setSubCategoria(String.valueOf(campoSubCategoria));
        agenda.setFoto((String) campoFoto.getTag());
        agenda.setQuantidade(campoQuantidade.getText().toString());


        return agenda;
    }
}

Porém, chamei o banco apenas na ultima activity (Quando clicar no ultimo botão).

public class AparelhosActivity extends AppCompatActivity
        implements NavigationView.OnNavigationItemSelectedListener, AdapterView.OnItemSelectedListener {

    public static final int REQUEST_CODE = 1;
    private Spinner spCategoria;
    private Spinner spSubCategoria;
    private String caminhoFoto;
    private AgendarHelper helper;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_aparelhos);
        Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
        setSupportActionBar(toolbar);

        helper = new AgendarHelper();

        spCategoria = (Spinner) findViewById(R.id.spCategoria);
        spSubCategoria = (Spinner) findViewById(R.id.spSubCategoria);

        ArrayAdapter<CharSequence> adapter = ArrayAdapter.createFromResource(this, R.array.categoria,android.R.layout.simple_spinner_item);
        adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);

        spCategoria.setAdapter(adapter);
        spCategoria.setOnItemSelectedListener(this);

        });

        Button botaoConcluir = (Button) findViewById(R.id.botao_agendou);
        botaoConcluir.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                Agenda agenda = helper.pegaAgenda();
        UsuarioDAO usuarioDAO = new UsuarioDAO(AparelhosActivity.this);
                usuarioDAO.insereAgendar(agenda);
                usuarioDAO.close();

                Intent agendou = new Intent(AparelhosActivity.this, MenuActivity.class);
                startActivity(agendou);

                Toast.makeText(AparelhosActivity.this,"Agedamento Salvo!", Toast.LENGTH_SHORT).show();
                finish();
            }
        });
3 respostas

Oi Marina, tudo bem ?

Acredito que seja melhor invés de você ter três activities, usar 3 fragments e uma única activity, nisso você consegue deixar o objeto na activity e na hora de popular fica fácil passar para dentro de cada objeto.

Além disso, para salvar será super tranquilo

Boa noite! Sim.. Mas não tem como pegar os dados das activitys e colocá-lo no banco? Meu aplicativo já está tudo pronto. Falta apenas pegar esses dados.

Você pode compartilhar o objeto através das intents, quando passa para a próxima tela.