Ver mensagens sem resposta | Ver tópicos ativos Hoje é 15 Jul 2020, 00:08



Responder Tópico  [ 1 Mensagem ] 
 Ajuda: Spinner Filtrar ListView 
Autor Mensagem
What is Android?
What is Android?

Data de registro: 15 Fev 2020, 14:43
Mensagens: 1
Mensagem Ajuda: Spinner Filtrar ListView
Olá

Sou novo no universo Android.

Atualmente estou estudando Spinner e ListView. Pesquisando me deparei com uma vídeo aula no YouTube onde o professor ensina a filtrar ListView usando Spinner.

Como que eu faço para as informações serem exibidas num ListView personaliada? (Obs.: Já aprendi a personalizar)

Sei que é preciso criar um Layout eu criei ele com nome de linha, mas como não funciona não postarei o código dele.

Aproveitando a oportunidade, nesse mesmo codigo é possivel usar dois Spinner para filtrar? Caso seja pode me da um exemplo?


Segue código do ListView e Spinner:
ACTIVITY_MAIN:
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context="info.camposha.listviewdropdownspinner.MainActivity">


    <TextView
        android:id="@+id/headerLabel"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentTop="true"
        android:layout_centerHorizontal="true"
        android:fontFamily="casual"
        android:textAllCaps="true"
        android:textSize="24sp"
        android:textStyle="bold" />


    <Spinner
        android:id="@+id/mySpinner"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:padding="5dp"
        android:layout_below="@id/headerLabel"
        android:layout_centerHorizontal="true"
        android:background="@android:drawable/editbox_dropdown_light_frame" />

    <ListView
        android:id="@+id/myListView"
        android:layout_below="@id/mySpinner"
        android:layout_width="match_parent"
        android:layout_height="wrap_content" />


</RelativeLayout>



MainActivity
package info.camposha.listviewdropdownspinner;

import android.app.Activity;
        import android.os.Bundle;
        import android.view.View;
        import android.widget.AdapterView;
        import android.widget.ArrayAdapter;
        import android.widget.ListView;
        import android.widget.Spinner;
        import android.widget.Toast;

        import java.util.ArrayList;

public class MainActivity extends Activity {

    ListView myListView;
    Spinner mySpinner;
    ArrayAdapter<CosmicBody> adapter;
    String[] categories={"Todas","Sol", "Lua"};

    /*
    Initialize ListView and Spinner, set their adapters and listen to spinner itemSelection events
    */

    private void initializeViews() {

        mySpinner = findViewById(R.id.mySpinner);
        mySpinner.setAdapter(new ArrayAdapter<>(this, android.R.layout.simple_list_item_1, categories));

        myListView = findViewById(R.id.myListView);
        myListView.setAdapter(new ArrayAdapter<>(this, android.R.layout.simple_list_item_1, getCosmicBodies()));



        //spinner selection events
        mySpinner.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
            @Override
            public void onItemSelected(AdapterView<?> adapterView, View view, int position, long itemID) {
                if (position >= 0 && position < categories.length) {
                    getSelectedCategoryData(position);
                } else {
                    Toast.makeText(MainActivity.this, "Selected Category Does not Exist!", Toast.LENGTH_SHORT).show();
                }
            }
            @Override
            public void onNothingSelected(AdapterView<?> adapterView) {

            }
        });
    }
    /*
    Populate an arraylist that will act as our data source.
     */

    private ArrayList<CosmicBody> getCosmicBodies() {
        ArrayList<CosmicBody> data = new ArrayList<>();
        data.clear();

        //Maternal
        data.add(new CosmicBody("Sol 1", 1));
        data.add(new CosmicBody("Lua 1", 2));
        data.add(new CosmicBody("Sol 2", 1));
        data.add(new CosmicBody("Lua 2", 2));

        return data;
    }
    /*
    Get the selected category's cosmic bodies and bind to ListView
     */

    private void getSelectedCategoryData(int categoryID) {
        //arraylist to hold selected cosmic bodies
        ArrayList<CosmicBody> cosmicBodies = new ArrayList<>();
        if(categoryID == 0)
        {
            adapter = new ArrayAdapter<>(this, android.R.layout.simple_list_item_1, getCosmicBodies());
        }else{
            //filter by id
            for (CosmicBody cosmicBody : getCosmicBodies()) {
                if (cosmicBody.getCategoryId() == categoryID) {
                    cosmicBodies.add(cosmicBody);
                }
            }
            //instatiate adapter a
            adapter = new ArrayAdapter<>(this, android.R.layout.simple_list_item_1, cosmicBodies);
        }
        //set the adapter to GridView
        myListView.setAdapter(adapter);
    }
    /*
    when activity is created, setContentView then initializeViews.
     */

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

        initializeViews();
    }
}
/*
Data Object class to represent a single Cosmic body. Class has default access modifier
 */

class CosmicBody {
    private String name;
    private int categoryID;

    public String getName() {
        return name;
    }

    public int getCategoryId() {
        return categoryID;
    }

    public CosmicBody(String name, int categoryID) {
        this.name = name;
        this.categoryID = categoryID;
    }

    @Override
    public String toString() {
        return name;
    }
}


15 Fev 2020, 15:08
Perfil
Mostrar mensagens anteriores:  Organizar por  
Responder Tópico   [ 1 Mensagem ] 

Quem está online

Usuários vendo este fórum: ac0502, ademilson, adenilsonsena, afpcp, alansousa, alexandrepom, alexmarcolongo, amarildolacerdas, amos, andrigo, Androidthebest, arilsonm, Augusto, bernardodauer, Biel, Blackstorm, Bravox, btleandro, cabelo, Cajux, camilodev, canaville, cassianotartari, Celso Jr., cfranca, charly, Chewbacca, claudio, cleber, cleiton_maciel, Cr-Informática, craudiao, czambroni, Danilo Dias, darllan.marinho, Darth Sidious, Delão, dkclan, drjunior, e-azuos, edsonel, eluttner, erikopa, erosvaldo, espinhara.net, estratecnologia, Everton Moreira, EvertonLB, faco, Faroli, felipedsilva, fgalvão, Flavio, flaviocc, Francisco_Geraldo, fredjpa, furlanrapha, geovanebg, germanno, Gnomo, guitarro17, gutem25, hebert, hopper.frf, ijsilvestre, inaciofernandes, inesfg, ismaelbpaiva, ismaels, iuri_freire, ixian, JairoCN, JAndroid, Jar Jar Binks, Jenius, joaquimfoto, jpespindola, julianafsa, klyff, Knut, konos, lillian.brandao, loferreira, LordElfo, lucastgomes, Luke Skywalker, maiconjunches, mam_computer, marciosoliveira, marinho5, MauNunes, Mayron Cimardi, mrangel, MSN NewsBlogs, nandopierre, neuhaus, Nice, nightwatch, Nute Gunray, oliveiramc, osternack, Padawan, paint-horse, peterson.bah, Petto, piantino, pingumanbr, pjorge, pmzara, pxcx, rbenatti, rcotonet, reginaldofdias, renatodondoni, ricdigital, Roberto, Rodrigo, rodrigo aguiar, rodrigo_mg, Rogério, ronamore, rotmeil, sjta, srsilveira, thiagoalgo, tonholis, Topeca, tricx16, Vania, vilmartr, viniciusluiz, voliverio, wagner_francisco, washington, Wenceslau, wil, wylken, xa:=zin, XPTO, Yoda, Yoshihury, Zam Wesell, zorba e 45 visitantes


Você não pode criar novos tópicos neste fórum
Você não pode responder tópicos neste fórum
Você não pode editar suas mensagens neste fórum
Você não pode excluir suas mensagens neste fórum
Você não pode enviar anexos neste fórum

Procurar por:

© 2007 - 2016 Portal Android - Comunidade de Desenvolvedores Android

Estamos no Linkedin    Siga-nos no twitter


Powered by phpBB - Hospedado por Bemobi