2014-09-19 6 views
0
  1. пользовательских типов 2 букв в автозаполнения текстовое поле
  2. Эти 2 буквы получить сохраненные и используемые в методе веб-службы для того, чтобы получения всех пользователей, которые начинают с этими 2 буквами результата
  3. XML получить вернулся, и получить разобран, и мы получаем имя пользователя + идентификатор и сохранить каждый из них в разных ArrayList
  4. результата с первым именем ArrayList получить путы в качестве выпадающего списка (автозаполнение)
  5. Th е пользователь выбирает элемент из элементов списка падения

- мне нужно, чтобы отобразить имя в выпадающем список, однако, когда пользователь выбирает имя, что идентификатор пользователя должен быть выбран и сохранен как Строка, которая будет использоваться для другого запроса.отображение значения, но выбирая идентификатор из выпадающего списка

Вопрос: Как отобразить имя, но выбрать идентификатор для этого имени

AutoCompleteTextView assigneeInput; 
    assigneeInput=(AutoCompleteTextView) 

    findViewById(id.editassignee); 

    assigneeInput.addTextChangedListener(new 

    TextWatcher() { 

     @Override 
     public void onTextChanged (CharSequence s,int start, int before, int count){ 
      getContactsForAssignee(); 
     } 
     @Override 
     public void beforeTextChanged (CharSequence s,int start, int count, int after){ 
     } 
     @Override 
     public void afterTextChanged (Editable s){ 
     } 
    } 

    ); 
    //Textwatcher for assignee input -end 

} 

    //Method to get Contacts for the assignee autocomplete - Start 
    public void getContactsForAssignee() { 
     //webservice call method 

    } 
//Method to get Contacts for the assignee autocomplete - End 

    public void receiveResults10(String result10) { 

     try { 

      //Dom parsing set up 

      List<String> valSetOne = new ArrayList<String>(); 
      List<String> valSetTwo = new ArrayList<String>(); 
      ArrayList<HashMap<String, String>> menuItems = new ArrayList<HashMap<String, String>>(); 


      for (int i = 0; i < nodesUDSObjectList.getLength(); i++) { 
       Element elementUDSObject = (Element) nodesUDSObjectList.item(i); 
       NodeList nodesAttributeList = elementUDSObject.getElementsByTagName("Attribute"); 

       HashMap<String, String> mapp = new HashMap<String, String>(); 


       for (int iA = 0; iA < nodesAttributeList.getLength(); iA++) { 
        Element elementAttribute = (Element) nodesAttributeList.item(iA); 
        //You have attribute(iA) 


        NodeList AttrNameElementList = (NodeList) elementAttribute.getElementsByTagName("AttrName"); 
        String nameValue = getCharacterDataFromElement((Element) (AttrNameElementList.item(0))); 

        System.out.println("name" + nameValue); 

        NodeList AttrValueElementList = (NodeList) elementAttribute.getElementsByTagName("AttrValue"); 
        String valueValue = getCharacterDataFromElement((Element) (AttrValueElementList.item(0))); 

        if (nameValue.equals("name")) { 
         valSetOne.add(valueValue); 
         mapp.put(COMBO_NAME, valueValue); 
        } 
        if (nameValue.equals("id")) { 
         valSetTwo.add(valueValue); 
         mapp.put(PERSISTENT_ID, valueValue); 
        } 
       } 
       menuItems.add(mapp); 
      } 
      AutoCompleteTextView editAssignee; 
      ArrayAdapter<String> adapter; 

      adapter = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, valSetOne); 
      editAssignee = (AutoCompleteTextView) findViewById(R.id.editassignee); 
      editAssignee.setAdapter(adapter); 

     } catch (Exception e) { 

      e.printStackTrace(); 


     } 

    } 

    public static String getCharacterDataFromElement(Element e) { 

    } 

    //Beginning of method to actually save the ticket executed on click of the "save" button 
    public void SaveThisIncident(View v) { 
     AutoCompleteTextView editAssigneeInput = (AutoCompleteTextView) findViewById(R.id.editassignee); //receiving the users input for assignee 
     String thisIsAssignee = editAssigneeInput.getText().toString(); 
    } 

ответ

0

Вам необходимо установить itemclicklistner для AutoCompleteTextView editAssignee & использования BaseAdapter вместо ArrayAdapter.

Pass ArrayList вашего пользовательского объекта, который содержит как id & значение строки для baseadapter.

Пользовательский объект может быть

public class item{ 
String id; 
String value; 
} 

Теперь onClickItem вы можете получить как значение идентификатора & из вашего Arraylist

+0

, как я могу это сделать, вы не возражаете, показывая мне, как? высоко оценил – Mash

+0

, если я изменил ArrayAdapter на BaseAdapter, я получаю ошибки. «Тип BaseAdapter не является общим, его нельзя параметризовать аргументами », если вы знаете, как решить мою проблему. plzzz помогите мне, мне действительно нужно срочно работать – Mash

+0

Вы можете см. этот ответ для использования Baseadapter http://stackoverflow.com/a/16335923/1677824 – Akhil

Смежные вопросы