Android: how to get AutoCompleteTextView inside onItemClick

I am trying to get the id of AutoCompleteTextView after I clicked on a value in the list. Tried searching google and stackoverflow but the answers provided didn't help. Here's what I have:

Created a view in my class declaration:

public class ActivityCadastrarCliente extends Activity implements OnClickListener, OnItemClickListener {
    AutoCompleteTextView E_Nome_Cliente, E_CPF;
    List<String> Nomes = new ArrayList<String>();
    ...

      

Bind view to XML element:

E_Nome_Cliente = (AutoCompleteTextView)findViewById(R.id.Nome_Cliente);
ArrayAdapter<String> adapter = new ArrayAdapter<String>(this, android.R.layout.simple_dropdown_item_1line, Nomes.toArray(new String[0]));
E_Nome_Cliente.setAdapter(adapter);
E_Nome_Cliente.setOnItemClickListener(this);

      

and my onItemClick method is usually called the following:

@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
    //switch (parent.getId()) { 
        //case R.id.Nome_Cliente:
            ...

    //}
}

      

Does anyone know how I can access this view inside onItemClick? Tried several ways, but I am getting exceptions:

//Class cast exception
AutoCompleteTextView input = (AutoCompleteTextView)view.getParent();
//Class cast exception
AutoCompleteTextView input = (AutoCompleteTextView)parent;
//Class cast exception
AutoCompleteTextView input = (AutoCompleteTextView)parent.getParent();

      

I need to determine what kind of click was clicked because I am using 3 to 5 AutoCompleteTextView and based on the selected value I will automatically fill in a bunch of other fields.

+3


source to share


3 answers


Have a look at the class AutoCompleteTextViewClickListener

in this answer .

Modify the call setOnItemClickListener

as follows:

E_Nome_Cliente.setOnItemClickListener(
        new AutoCompleteTextViewClickListener(E_Nome_Cliente, this));

      



Now you can get the identifier by accessing the modified view parameter:

@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
    //view had been modified by AutoCompleteTextViewClickListener 
    //to contain the original AutoCompleteTextView
    switch (view.getId()) { 
        case R.id.Nome_Cliente:
            //...
    }
}

      

+2


source


I'm not sure what you mean by view id? do you want to get the selected value? if so, the code below will do it, otherwise clarify more what you need and why you want to access the view itself.

@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
    //switch (parent.getId()) { 
       String selected = adapter.getItem(position);

    //}
}

      



more about adapters here

0


source


Use parent.findViewById(R.id.id_of_autocompleteTextView)

for parent element AutoCompleteTextView

.

0


source







All Articles