Como percorer um array em android studio?

como posso percorrer um array, e ver se tem algum item no array?

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 opccaoEscolhida) {
        //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(opccaoEscolhida)) 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) {

                startActivity(new Intent(TelaActivity.this, HomeActivity.class));


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

Boa noite, Henrique.

LEIA OS COMENTÁRIOS

import androidx.appcompat.app.AppCompatActivity;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.TextView;
import android.widget.Toast;
import java.util.ArrayList;

public class TelaActivity extends AppCompatActivity{

    // DECLARE AS VARIÁVEIS/ATRIBUTOS AQUI
    TextView recebe;
    Button mercad, lo, escolhe;
    ArrayList<Empresa> empresasTotais;
    ArrayList<Empresa> empresasFiltradas = new ArrayList<>();

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

        // UMA BOA PRÁTICA É DEIXAR OS findViewByIds AQUI DENTRO DO onCreate
        mercad = findViewById(R.id.Mercado);
        lo = findViewById(R.id.lojaDeRoupa);
        recebe = findViewById(R.id.Cate);

        // Inicializador
        iniciar();
    }

    public void filtrarEmpresas(String opccaoEscolhida){
        //Limpar a lista caso já hajam empresas na lista de empresas filtradas
        empresasFiltradas.clear();

        // INSTANCIE O ArrayList DENTRO DO MÉTODO EM QUE VC VAI USÁ-LO (filtrarEmpresas)
        empresasTotais = new ArrayList<>();

        //Lista com as empresas totais já com as empresas recebidas
        for(int i = 0; i < empresasTotais.size(); i++){
        
          // A VARIÁVEL empresa RECEBE A empresa DO ArrayList empresasTotais SEGUNDO SEU ÍNDICE i,
         // i COMEÇA COM O VALOR 0 E VAI ATÉ A ÚLTIMA POSIÇÃO,
         // POIS i ESTÁ SENDO INCREMENTADO DESSA FORMA:  i = i + 1.
         // A CASA GIRO DO for UMA empresa É ATRIBUÍDA À VARIÁVEL empresa
         // E ESTA É INSERIDA NO ArrayList empresasFiltradas NA LINHA empresasFiltradas.add(empresa)
            empresa = empresasTotais.get(i);

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

        // FIZ UM Toast SÓ PRA EXIBIR A QUANTIDADE DE empresas QUE HÁ NO SEU ArrayList. Vc o obtém ao usar o size() - empresasTotais.size()
        Toast.makeText(this, "TOTAL DE EMPRESAS: " + empresasTotais.size() + "", Toast.LENGTH_SHORT).show();// CONCATENE empresasTotais.size() + "", POIS empresasTotais.size() É UM int
    }

    public void iniciar(){
        // Espaço para eventos
        mercad.setOnClickListener(new View.OnClickListener(){
            @Override
            public void onClick(View v){
                startActivity(new Intent(TelaActivity.this, HomeActivity.class));
                // O parâmetro opção escolhida deverá ser indicado a partir do seu checkbox selecionado
                filtrarEmpresas(); // Passe um parâmetro aqui
            }
        });
    }
}

Vc não usou a variável “escolhe” declarada lá nos atributos, se não for usá-la, descarta ela de lá.

Espero ter ajudado.

show, ajudou sim, fiz aqui e deu certinho, agora a duvida é, se puder e ajudar é claro, logo apos o usuario se cadastrar, ou fiz o login, o mesmo é direcionado pra uma tela, onde tem dois botões, o botão mercado, e loja de roupas, vamos dizer que o usuário aperte o botão mercado, o app lista todos as empresas da categoria mercado, só que não sei como fazer isso, se puder me dar uma força.

Usa um ListView pra listar todas as empresas. Vc está pegando as empresas do banco de dados ou está só testando inserindo Strings?

1 curtida

pego as empresas do banco, uso o firebase, eu consigo listar todas as empresas sabe, mas tipo filtrar elas não sei como fazer.

Eu trabalhei com SQLite, o exemplo que posso te dar seria com a implementação dele, ajuda?
Qual seria esse seu fifltro?

ajuda sim, o filtro seria por categoria, da uma olhada.

Configuração empresa, onde é feita a opção por categoria

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);
    }

tela que faz a opção, onde terá os botões no laytou

public class TelaActivity extends AppCompatActivity{

// DECLARE AS VARIÁVEIS/ATRIBUTOS AQUI
TextView recebe;
Button mercad, lo, escolhe;
ArrayList<Empresa> empresasTotais;
ArrayList<Empresa> empresasFiltradas = new ArrayList<>();

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

    // UMA BOA PRÁTICA É DEIXAR OS findViewByIds AQUI DENTRO DO onCreate
    mercad = findViewById(R.id.Mercado);
    lo = findViewById(R.id.lojaDeRoupa);
    recebe = findViewById(R.id.Cate);

    // Inicializador
    iniciar();
}

public void filtrarEmpresas(String opccaoEscolhida){
    //Limpar a lista caso já hajam empresas na lista de empresas filtradas
    empresasFiltradas.clear();

    // INSTANCIE O ArrayList DENTRO DO MÉTODO EM QUE VC VAI USÁ-LO (filtrarEmpresas)
    empresasTotais = new ArrayList<>();

    //Lista com as empresas totais já com as empresas recebidas
    for(int i = 0; i < empresasTotais.size(); i++){

        // A VARIÁVEL empresa RECEBE A empresa DO ArrayList empresasTotais SEGUNDO SEU ÍNDICE i,
        // i COMEÇA COM O VALOR 0 E VAI ATÉ A ÚLTIMA POSIÇÃO,
        // POIS i ESTÁ SENDO INCREMENTADO DESSA FORMA:  i = i + 1.
        // A CASA GIRO DO for UMA empresa É ATRIBUÍDA À VARIÁVEL empresa
        // E ESTA É INSERIDA NO ArrayList empresasFiltradas NA LINHA empresasFiltradas.add(empresa)
        Empresa empresa = empresasTotais.get(i);

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

    // FIZ UM Toast SÓ PRA EXIBIR A QUANTIDADE DE empresas QUE HÁ NO SEU ArrayList. Vc o obtém ao usar o size() - empresasTotais.size()
    Toast.makeText(this, "TOTAL DE EMPRESAS: " + empresasTotais.size() + "", Toast.LENGTH_SHORT).show();// CONCATENE empresasTotais.size() + "", POIS empresasTotais.size() É UM int
}

public void iniciar(){
    // Espaço para eventos
    mercad.setOnClickListener(new View.OnClickListener(){
        @Override
        public void onClick(View v){
            //startActivity(new Intent(TelaActivity.this, HomeActivity.class));
            // O parâmetro opção escolhida deverá ser indicado a partir do seu checkbox selecionado
            filtrarEmpresas(); // Passe um parâmetro aqui
        }
    });
}

}

Essa lista é de alunos que estão cadastrados no Banco de Dados. Quanto ao filtro, vc consulta no seu banco de dados uma empresa e verifica sua categoria. SE (if) a empresa é de x categoria, vc insere ela num ArrayListXCategoria como o do aluno. SE (if) a empresa é de y categoria, vc insere ela num ArrayListYCategoria e assim vai. Depois de os ArrayLists estarem preenchidos vc pode manipulá-los pra oq vc quiser fazer com as empresas de determinadas categorias. Abaixo segue minha listview de alunos. Espero que ajude.

package estudos.listview;

import android.database.Cursor;
import android.os.Bundle;
import androidx.appcompat.app.AppCompatActivity;
import androidx.appcompat.widget.Toolbar;
import android.widget.ListView;
import android.widget.TextView;
import android.widget.Toast;
import java.util.ArrayList;


public class ListarAlunos extends AppCompatActivity{

    // ATRIBUTOS
    BancoDeDados banco;
    Aluno aluno;
    ArrayList<Aluno> arrayList;
    ArrayAdapterCustAluno arrayAdapterCustAluno;
    ListView listView;

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

        // INSTÂNCIAS E REFERÊNCIAS
        banco = new BancoDeDados(this);            
        listView = findViewById(R.id.lista_de_alunos);

        // CHAMADA DO MÉTODO listarAlunos() QUE LISTA TODOS OS Alunos QUE ESTÃO CADASTRADOS NO BANCO DE DADOS
        listarAlunos();
    }

    public void listarAlunos(){
        // RESULTADO DA CONSULTA POR TODOS OS VALORES QUE HÁ NESTA TABELA
        Cursor cursor = banco.listarAlunosBanco();

        // getCount() RETORNA A QUANTIDADE DE VALORES QUE HÁ NA VARIÁVEL resultado. SE resulado FOR IGUAL A 0, NÃO HÁ VALORES NA LISTA
        if(cursor.getCount() == 0){
            Toast.makeText(this, R.string.lista_vazia, Toast.LENGTH_SHORT).show();
            finish();
        }
        else{
            // Instância do ArrayList
            arrayList = new ArrayList<>();
            // .moveToNext() MOVE O Cursor PARA O PRÓXIMO VALOR (ATÉ O ÚLTIMO)
            while(cursor.moveToNext()){
                String idAluno = cursor.getString(cursor.getColumnIndex("ID_ALUNO"));
                String fkDadosPessoais = cursor.getString(cursor.getColumnIndex("FK_DADOS_PESSOAIS_ALUNO"));
                String fkEndereco = cursor.getString(cursor.getColumnIndex("FK_END_ALUNO"));
                String fkTurma = cursor.getString(cursor.getColumnIndex("FK_TURMA"));

                aluno = new Aluno(idAluno, fkDadosPessoais, fkEndereco, fkTurma);// INSTÂNCIA DO Aluno ENCONTRADO
                arrayList.add(aluno);// INSERÇÃO DO Aluno NO arrayList QUE É UMA LISTA DE Alunos
                arrayAdapterCustAluno = new ArrayAdapterCustAluno(this, arrayList);// INSTÂNCIA DO ARRAYADAPTER CUSTOMIZADO
                listView.setAdapter(arrayAdapterCustAluno);// O ADAPTER DO ListView É SETADO PASSANDO O ADAPTER CUSTOMIZADO
            }
        }
    }
}