У меня есть класс, в котором я могу поместить в StringArray, и он отображает список с полем поиска для фильтрации содержимого. Мое приложение подвержено тому, что каждое поле имеет идентификатор набора. Однако, когда я ищу значение, идентификаторы меняются в отфильтрованный список. Есть ли способ, чтобы получить идентификатор из исходного списка, так что даже в отфильтрованный список я могу иметь идентификаторы, как 9, 14, а не 0, 1, 2 ....Получить оригинальный идентификатор из отфильтрованного списка Viewview
lv1.setAdapter(new ArrayAdapter<String>(this,android.R.layout.simple_list_item_1 , searchItems));
ed.addTextChangedListener(new TextWatcher() {
public void afterTextChanged(Editable s) {
}
public void beforeTextChanged(CharSequence s, int start, int count,
int after) {
}
public void onTextChanged(CharSequence s, int start, int before,
int count) {
textlength = ed.getText().length();
arr_sort.clear();
for (int i = 0; i < searchItems.length; i++) {
if (textlength <= searchItems[i].length()) {
if (ed.getText().toString().equalsIgnoreCase((String) searchItems[i].subSequence(0, textlength))) {
arr_sort.add(searchItems[i]);
}
}
}
lv1.setAdapter(new ArrayAdapter<String>(Rest_Search.this, android.R.layout.simple_list_item_1, arr_sort));
// lv1.smoothScrollToPosition(20);
}
});
lv1.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView parent, View v,
int position, long id) {
// String a = parent.getItemAtPosition(position);
// menuID = (int) id;
int a = (int) parent.getAdapter().getItemId(position);
// menuID = (int) parent.getAdapter().getItemId(position);
Toast.makeText(Rest_Search.this, ""+a, Toast.LENGTH_SHORT).show();
Это работало, все делали это дало некоторые проблемы. Спасибо за быстрый ответ – Riekelt