2015-02-18 3 views
1

Im пытаются построить автозаполнение TextView в Android, и его отлично работает, но моя проблема в том, мне нужно, чтобы получить значение было связано для элемента был выбран, я имею в видуавтозаполнение TextView набор скрытые значения и видимый текст андроид

у нас есть школы

Abc, BBT, ccce, ddde

а имеют ID = 1, и number_of_students = 30

BBT есть ID = 2, и number_of_students = 20 студентов

ccce имеет идентификатор = 3, и number_of_students = 50 студентов

ddde имеет идентификатор = 4, и number_of_students = 40 студентов

, когда пользователь записи в текстовых зрениях аЬса, и выберите его, мне нужно, чтобы получить идентификатора и number_of_students, а не только а текст,

Я имею в виду HTML мы имеем <option value="1">text<option>, когда выбрать его, мы получаем 1, а не текст, есть вариант в андроиде, чтобы установить текст и я получаю значение не текст

спасибо большое.

 ArrayAdapter<String> adapter = new ArrayAdapter<String>(this, 
      android.R.layout.simple_dropdown_item_1line, COUNTRIES); 
    AutoCompleteTextView textView = (AutoCompleteTextView)findViewById(R.id.schoolsAutoComp); 
    textView.setAdapter(adapter); 

    textView.setOnItemClickListener(new AdapterView.OnItemClickListener() { 
     @Override 
     public void onItemClick(AdapterView<?> parent, View arg1, int pos, long id) { 
      //pos is the position of the selected item 
      Toast toast = Toast.makeText(getApplicationContext(), COUNTRIES[pos], Toast.LENGTH_LONG); 
      toast.show(); 
     } 
    }); 

Окончательное решение:

 textView.setOnItemClickListener(new AdapterView.OnItemClickListener() { 
     @Override 
     public void onItemClick(AdapterView<?> parent, View arg1, int pos, long id) { 
      String selection = (String) parent.getItemAtPosition(pos); 
      int pos2 = -1; 

      for (int i = 0; i < COUNTRIES.length; i++) { 
       if (COUNTRIES[i].equals(selection)) { 
        pos2 = i; 
        break; 
       } 
      } 
      System.out.println("Position " + pos2); //check it now in Logcat 
     } 
    }); 
+0

Извините мат, я имею в виду HTML мы имеем <параметр значение = "1"> текст

+0

Показать свой код для СТРАН. – barq

+0

Спасибо, барк за помощь, и извините, что поздно для этого ответа, я нашел решение зависимости вашей идеи, спасибо большое. –

ответ

1
setOnItemClickListener(new OnItemClickListener() { 
     @Override 
     public void onItemClick(AdapterView<?> parent, View arg1, int pos, long id) 
     { 
     //pos is the position of the selected item 
     } 
    }); 
+0

спасибо большое, я получаю позицию, но проблема в том, что я задаю позицию зависимости текущего списка (зависимость букв задана пользователем) не для исходного массива .. есть решение^_^ –

+0

Просто сохраните номер студентов в массиве, чтобы индекс соответствовал вашему желаемому тексту, а затем доступ к массиву по позиции/id. – barq

+0

Yup, я знаю, что помощник, но я имею в виду, что «pos» был получен мной, это позиция заказа в представлении списка, когда пользователь пишет несколько букв, а не позицию для исходного массива ... школа abc в исходном массиве был индекс 5, если я пишу a pos полученное 2, когда запись ab a pos получена 0 ... –

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