Como posso pegar uma opção vinda do usuário através de um botão, e filtrar essa opção, mostrando só a categoria correspondente.

  • Respostas:0
  • AbertoNão stickySem resposta
  • Posts no fórum: 2

15/08/2020, 14:31:59 via Web

Amigos, to fazendo um app, que será de compras e vendas, estou usando o fibase como banco. Quando o usuário se loga, o mesmo é redirecionado para a tela onde tem as opções do aplicativo, que são os botões, loja de roupas e mercados, se o usuário clicar em mercados por exemplo, o app faz um filtro somente com mercados, que é a categoria que vou cadastrado pelas empresas mercados, não sei se puder explicar bem. Eu cadastro no banco, puxo as informações e tal, mas não sei como fazer esse filtro ao clicar no botão, até tentei fazer, mas da erro. Vou deixar as duas classes, a configuração, e onde quero fazer esse filtro.

public class ConfiguracaoEmpresaActivity extends AppCompatActivity {
    private EditText editEmpresaNome, tefe,cnpj,
            editEmpresaTempo, editEmpresaTaxa;
    private ImageView imagePerfilEmpresa;
  private TextView categoria;
    private static final int SELECAO_GALERIA = 200;
    private StorageReference storageReference;
    private DatabaseReference firebaseRef;
    private String idUsuarioLogado;
    private String urlImagemSelecionada ;
    private RadioButton mercado,loja;
    private RadioGroup opcaoCate;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_configuracao);
//Configurações iniciais
        inicializarComponentes();
        storageReference = ConfiruFirebase.getReferenciaStorage();
        firebaseRef = ConfiruFirebase.getFirebase();
        idUsuarioLogado = UsuarioFirebase.getIdUsuario();

        //Configurações Toolbar
        Toolbar toolbar = findViewById(R.id.toolbarNova);
        toolbar.setTitle("Perfil");
        setSupportActionBar(toolbar);
        getSupportActionBar().setDisplayHomeAsUpEnabled(true);

        imagePerfilEmpresa.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                Intent i = new Intent(
                        Intent.ACTION_PICK,
                        MediaStore.Images.Media.EXTERNAL_CONTENT_URI
                );
                if( i.resolveActivity(getPackageManager()) != null ){
                    startActivityForResult(i, SELECAO_GALERIA);
                }
            }
        });

        /*Recuperar dados da empresa*/
        recuperarDadosEmpresa();
  EscoleCategoria();

    }

    private void recuperarDadosEmpresa(){

        DatabaseReference empresaRef = firebaseRef
                .child("empresas")
                .child( idUsuarioLogado );

        empresaRef.addValueEventListener(new ValueEventListener() {
            @Override
            public void onDataChange(DataSnapshot dataSnapshot) {

                if( dataSnapshot.getValue() != null ){
                    Empresa empresa = dataSnapshot.getValue(Empresa.class);
                    editEmpresaNome.setText(empresa.getNome());
                    categoria.setText(empresa.getCategoria());
                    editEmpresaTaxa.setText(empresa.getPrecoEntrega().toString());
                    editEmpresaTempo.setText(empresa.getTempo());
                     cnpj.setText(empresa.getCnpj());
                     tefe.setText(empresa.getTefoneEmpresa());
                    urlImagemSelecionada = empresa.getUrlImagem();
                    if( urlImagemSelecionada != "" ){
                        Picasso.get()
                                .load(urlImagemSelecionada)
                                .into(imagePerfilEmpresa);
                    }

                }

            }

            @Override
            public void onCancelled(DatabaseError databaseError) {

            }
        });

    }
    public  void EscoleCategoria(){

     opcaoCate.setOnCheckedChangeListener(new RadioGroup.OnCheckedChangeListener() {
         @Override
         public void onCheckedChanged(RadioGroup group, int checkedId) {
             if(checkedId== R.id.mercado){
                 categoria.setText("Mercado");
             }else if(checkedId==R.id.lojaDeRoupa){
                 categoria.setText("Loja de Roupas");

             }
         }
     });



    }
    public void validarDadosEmpresa(View view){

        //Valida se os campos foram preenchidos
        String nome = editEmpresaNome.getText().toString();
        String taxa = editEmpresaTaxa.getText().toString();
        String Categoria = categoria.getText().toString();
        String tempo = editEmpresaTempo.getText().toString();
        String cnpf = cnpj.getText().toString();
        String tele= tefe.getText().toString();

        if( !nome.isEmpty()){
            if( !taxa.isEmpty()){

                    if( !cnpf.isEmpty()){

                        Empresa empresa = new Empresa();
                        empresa.setIdUsuario( idUsuarioLogado );
                        empresa.setNome( nome );
                        empresa.setPrecoEntrega( Double.parseDouble(taxa) );
                        empresa.setCategoria(Categoria);
                        empresa.setTempo( tempo );
                        empresa.setCnpj(cnpf);
                        empresa.setTefoneEmpresa(tele);
                        empresa.setUrlImagem( urlImagemSelecionada );

                        empresa.salvar();
                        finish();

                    }else{
                        exibirMensagem("Digite a Taxa de Entrega");
                    }

            }else{
                exibirMensagem("Digite Cnpj");
            }
        }else{
            exibirMensagem("Digite um nome para a empresa");
        }
        EscoleCategoria();
    }

    private void exibirMensagem(String texto){
        Toast.makeText(this, texto, Toast.LENGTH_SHORT)
                .show();
    }

    @Override
    protected void onActivityResult(int requestCode, int resultCode, Intent data) {
        super.onActivityResult(requestCode, resultCode, data);

        if( resultCode == RESULT_OK){
            Bitmap imagem = null;

            try {

                switch (requestCode) {
                    case SELECAO_GALERIA:
                        Uri localImagem = data.getData();
                        imagem = MediaStore.Images
                                .Media
                                .getBitmap(
                                        getContentResolver(),
                                        localImagem
                                );
                        break;
                }

                if( imagem != null){

                    imagePerfilEmpresa.setImageBitmap( imagem );

                    ByteArrayOutputStream baos = new ByteArrayOutputStream();
                    imagem.compress(Bitmap.CompressFormat.JPEG, 70, baos);
                    byte[] dadosImagem = baos.toByteArray();

                    StorageReference imagemRef = storageReference
                            .child("imagens")
                            .child("empresas")
                            .child(idUsuarioLogado + "jpeg");

                    UploadTask uploadTask = imagemRef.putBytes( dadosImagem );
                    uploadTask.addOnFailureListener(new OnFailureListener() {
                        @Override
                        public void onFailure(@NonNull Exception e) {
                            Toast.makeText(ConfiguracaoEmpresaActivity.this,
                                    "Erro ao fazer upload da imagem",
                                    Toast.LENGTH_SHORT).show();
                        }
                    }).addOnSuccessListener(new OnSuccessListener<UploadTask.TaskSnapshot>() {
                        @Override
                        public void onSuccess(UploadTask.TaskSnapshot taskSnapshot) {

                            urlImagemSelecionada = taskSnapshot.getDownloadUrl().toString();
                            Toast.makeText(ConfiguracaoEmpresaActivity.this,
                                    "Sucesso ao fazer upload da imagem",
                                    Toast.LENGTH_SHORT).show();

                        }
                    });

                }

            }catch (Exception e){
                e.printStackTrace();
            }

        }

    }
// inicia os componentes

    private void inicializarComponentes(){
        editEmpresaNome = findViewById(R.id.editEmpresaNome);
        mercado = findViewById(R.id.mercado);
        loja= findViewById(R.id.lojaDeRoupa);

        editEmpresaTaxa = findViewById(R.id.editEmpresaTaxa);
        editEmpresaTempo = findViewById(R.id.editEmpresaTempo);
        imagePerfilEmpresa = findViewById(R.id.FotoEmpresa);
        opcaoCate = findViewById(R.id.opcaoCategoria);
        categoria = findViewById(R.id.Cate);
        tefe= findViewById(R.id.tefenoEmpresa);
        cnpj= findViewById(R.id.Cnpf);
    }

classe tela

public class TelaActivity extends AppCompatActivity {
private Button mercad;
private Button lo;
private TextView recebe;

private List<Empresa> empresasTotais = new ArrayList<>();
private List<Empresa> empresasFiltradas = new ArrayList<>();

private Button escolhe;

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

    // Inicializador
    iniciar();

}

public void filtrarEmpresas(String mercado) {
    //Limpar a lista caso já hajam empresas na lista de empresas filtradas
    empresasFiltradas.clear();
    //Lista com as empresas totais já com as empresas recebidas
    for (Empresa empresa : empresasTotais) {

        //Se a empresa conter a opcao escolhida vamos adicionar
        //a impresa a nova lista de filtros
        if (empresa.getCategoria().contains(mercado)) empresasFiltradas.add(empresa);
    }
}

public void iniciar() {
    mercad = findViewById(R.id.Mercado);
    lo = findViewById(R.id.lojaDeRoupa);
     TextView recebe = findViewById(R.id.Cate);


    // Espaço para eventos
    mercad.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {



            // O parâmetro opção escolhida deverá ser indicado a partir do seu checkbox selecionado
            filtrarEmpresas(); // Passe um parâmetro aqui
        }
    });
}

}

Seja o primeiro a responder
Recomendado pelo NextPit