Solucionado (ver solução)
Solucionado
(ver solução)
10
respostas

Conteúdo do AutoCompleteTextView

Olá, pessoal.

Estou tentando pegar o conteúdo de um AutoCompleteTextView, mas está aparecendo um conteúdo vazio (fiz um Toast para testar).

Já tentei de duas formas:

TextInputLayout:

<com.google.android.material.textfield.TextInputLayout
        android:id="@+id/filtro_adapter_unidade"
        style="@style/Widget.MaterialComponents.TextInputLayout.OutlinedBox.Dense.ExposedDropdownMenu"
        android:layout_width="wrap_content"
        android:layout_height="0dp"
        android:layout_marginStart="16dp"
        android:layout_marginEnd="8dp"
        android:textColorHint="#FFFFFF"
        android:textSize="18sp"
        app:boxBackgroundColor="#00FFFFFF"
        app:boxStrokeColor="#1B508C"
        app:layout_constraintEnd_toStartOf="@+id/filtro_adapter_secretaria1"
        app:layout_constraintHorizontal_bias="0.49"
        app:layout_constraintStart_toStartOf="@+id/layoutHeader"
        app:layout_constraintTop_toTopOf="@+id/layoutHeader">

        <AutoCompleteTextView
            android:id="@+id/spinnerAdapterUnidade"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:hint="Unidade"
            android:inputType="none"
            android:textColor="#FFFFFF" />

1) pegando o TextInputLayout

TextInputLayout unidadeTeste  = findViewById(R.id.filtro_adapter_unidade);
String unidadeTeste_Conteudo = unidadeTeste.getEditText().getText().toString();

(Toast.makeText(MainActivity.this, unidadeTeste_Conteudo, Toast.LENGTH_SHORT)).show();

2) e pegando o AutoCompleteTextView

AutoCompleteTextView spinner_filtro_unidade = findViewById(R.id.spinnerAdapterUnidade);
String unidade = spinner_filtro_unidade.getEditableText().toString();

(Toast.makeText(MainActivity.this, unidade, Toast.LENGTH_SHORT)).show();

O que estaria fazendo de erro, por favor?

10 respostas

Fala Thiago, de boa?

Cara as coisas estavam funcionando, não ? O que rolou que mudou o comportamento ?

Em tese, usar o getText e em seguida o toString já resolveria seu problema em pegar o dado do AutoCompleteTextView

Tudo ótimo e contigo?

Os AutoCompleteTextView do formulário de cadastro estão funcionando hahaha

Mas lembra que na tela inicial eu coloquei uns campos para filtrar? Estavam lá só de enfeite. Agora fui fazer o código e não funcionou. O mais estranho é que está igual ao código do formulário para cadastro de visita.

De boa por aqui :)

Cara, não lembro não, só havia o botão de adicionar novas visitas.

Você setou os adapters corretamente ?

Setei, mas aí eu tirei para testar e coloquei o Toast para ver o que ele estava pegando. O Toast aparece vazio, não está pegando o conteúdo do AutoCompleteTextView.

Sem adapter, o campo não tem opção, deve ser por esse motivo que não está exibindo nada.

Além disso, tu devia fazer esse toast apenas no momento que o campo foi selecionado, imagino.

O Toast coloquei no método qdo clica no botão. Mesmo antes de passar para o adapter, deveria aparecer, pelo Toast, na tela o conteúdo selecionado:

buttonPesquisar.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                (Toast.makeText(MainActivity.this, situacao, Toast.LENGTH_SHORT)).show();
                (Toast.makeText(MainActivity.this, unidadeTeste_Conteudo, Toast.LENGTH_SHORT)).show();
            }
        });

O adapter não funcionou pq está passando o conteúdo vazio. Tirei o método do adapter e coloquei o Toast para confirmar o que estava na variável. Está vazia.

O erro está em pegar este conteúdo. Só não entendi o motivo.

solução!

Thiago,

Você precisa pegar os valores no momento que fizer esse click, ou seja, os getText precisam estar ai.

Não é que funcionou? Kkkkkkkkkkkkkkkkkkkk

Rapaz, eu coloquei como atributo da classe. Por que assim não aceitou?

quando tu faz o getText, ele pega o conteúdo no instante que você faz essa ação.

por esse motivo não funcionou, entende?