0

I would like to programmatically select item from ArrayAdapter<String> based on String value given if it exists. How can I do it?

I have this solution:

onAddressPickListener = AdapterView.OnItemClickListener { parent, _, position, _ ->
      pickedAddress = parent.getItemAtPosition(position).toString()
      //do something later
}

addressEt?.onItemClickListener = onAddressPickListener
addressList.addAll(newList)
addressAdapter = AddressPickerAdapter(a, R.layout.address_list_item, addressList)
addressEt?.setAdapter(addressAdapter)
addressEt?.threshold = 0

Somewhere else in code:

address?.let { currAddress ->
       val addressIndex = addressList.indexOf(currAddress)
       if (addressIndex != -1){
          addressAdapter?.let { adapter->
             val addressId = adapter.getItemId(addressIndex)
             val addressView = adapter.getView(addressIndex, **NONE(convertView)**, **NONE(parent)**)
             addressEt?.let { onAddressPickListener?.onItemClick(**NONE(AdapterView)**, **NONE(View)**, addressIndex, addressId) }
          }
       }
    }

Values marked as NONE(something) are unknown parameters. I don't know how or where to get their values from. addressEt is AutocompleteTextView.

martin1337
  • 2,384
  • 6
  • 38
  • 85
  • https://stackoverflow.com/questions/44963164/autocompletetextview-item-selection-programmatically – ADM Nov 20 '20 at 12:01

1 Answers1

0

I don't know how to do it in Kotlin but I can give you the solution in Java, that can help you resolve. First setup data into Pojo class using array list. And return string for autotextview. Match that string with arraylist's item value. note: sorry for bad English!!

autoPartyName.setOnItemClickListener(new AdapterView.OnItemClickListener() {
                        @Override
                        public void onItemClick(AdapterView<?> adapterView, View view, int position, long id) {
                            for (CustomersModel list : customersList) {
                                if(list.toString().equals(adapterView.getItemAtPosition(position))){
                                    etContactPhone.setText(list.getContact());
                                    etContactAddress.setText(list.getAddress());
                                }
                            }
                        }
                    });