我正在篩選它正常工作的列表視圖。但是當我點擊過濾列表視圖的一個項目時,它給了我原始位置中項目的名稱。已過濾列表查看返回原始位置
實施例: 項目:A,B,C,d,E. 如果I濾波器C,它返回僅1個項目(C),但它示出了,因爲它是位置0
我已經尋找信息,但沒有任何類似的問題幫助我。
這是我的代碼:
final FilteredListviewAdapter adapter = new FilteredListviewAdapter(AddAgentProfile.this, android.R.layout.simple_list_item_1, arraymls);
list.setOnItemClickListener(new OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
// TODO Auto-generated method stub
addProfile.setMLSId(mlslist.get(position).getId());
// THIS IS THE LINE THAT GIVES ME THE WRONG RESULT!!!
textmls.setText(mlslist.get(position).getName());
mls.setText("");
dialog.dismiss();
}
});
list.setAdapter(adapter);
final EditText filter = (EditText) inflated.findViewById(R.id.et_filter);
filter.addTextChangedListener(new TextWatcher() {
@Override
public void onTextChanged(CharSequence s, int start, int before, int count) {
// TODO Auto-generated method stub
}
@Override
public void beforeTextChanged(CharSequence s, int start, int count, int after) {
// TODO Auto-generated method stub
}
@Override
public void afterTextChanged(Editable s) {
adapter.getFilter().filter(s);
adapter.notifyDataSetChanged();
}
});
而且FIlteredListViewAdapter:
public class FilteredListviewAdapter extends ArrayAdapter<String> {
ArrayList<String> list;
public FilteredListviewAdapter(Context context, int layout, ArrayList<String> array) {
super(context, layout, array);
list = array;
}
@Override
public String getItem(int position) {
return super.getItem(position);
}
}
我做錯了什麼?
我已經試過了因爲我在另一個問題的評論中看到它,但它不起作用。 如果我把這個句子,這個清單沒有正確過濾。我總是得到原始列表中的N個第一項(取決於我過濾的內容)。 如果有1個物品滿足過濾器,則顯示原始列表的項目0。如果有2個項目,則顯示原始列表的2個第一項。等等。 – trumpetero