TextWatcherを使用してリストをフィルタリングする Android アプリを開発しています。
編集テキストに単語を入力するとリストがフィルターを取得しますが、アイテムを選択すると、フィルターされていないリストの位置からアイテムが選択されます。写真で見ることができます。最初の画像では、アスピリン 10mg が位置 (0) にあるフィルタリングされていないリストを見ることができます
2番目の画像では...これはフィルターされたリストです...「C」を含むすべてのアイテムが含まれています...最初のアイテムをクリックすると(フィルターされたリストの位置[0])、フィルターされていないリストの位置からアイテムが選択されます[ 0]
助けてください...どうすれば修正できますか...次のコードも見ることができます。
grabResults = (EditText) findViewById(R.id.grabed_et_search);
grabResults.addTextChangedListener(new TextWatcher() {
@Override
public void beforeTextChanged(CharSequence s, int start, int count, int after) {
}
@Override
public void onTextChanged(CharSequence s, int start, int before, int count) {
//perform Search
grabedDb.this.adapter.getFilter().filter(s);
}
@Override
public void afterTextChanged(Editable s) {
}
});
JsonObjectRequest jreq = new JsonObjectRequest(Request.Method.GET, url,
new Response.Listener<JSONObject>() {
@Override
public void onResponse(JSONObject response) {
try {
int success = response.getInt("success");
if (success == 1) {
JSONArray ja = response.getJSONArray("mydrugs");
for (int i = 0; i < ja.length(); i++) {
JSONObject jobj = ja.getJSONObject(i);
HashMap<String, String> item = new HashMap<String, String>();
item.put(ITEM_ID, jobj.getString(ITEM_ID));
item.put(ITEM_NAME,
jobj.getString(ITEM_NAME));
Item_List.add(item);
} // for loop ends
String[] from = { ITEM_ID, ITEM_NAME };
int[] to = { R.id.item_name, R.id.item_id };
adapter = new SimpleAdapter(
getApplicationContext(), Item_List,
R.layout.list_items, from, to);
final ListView myList = (ListView) findViewById(R.id.list_list_listView);
myList.setAdapter(adapter);
PD.dismiss();
//////// List Item Click Method Starts here ////////
myList.setOnItemClickListener(new AdapterView.OnItemClickListener(){
@Override
public void onItemClick(AdapterView<?> parent, View view, int position,
long id) {
HashMap<String, String> selectedItems = new HashMap<String, String>();
selectedItems = Item_List.get(position);
stock_list.add(selectedItems);
Toast.makeText(getApplicationContext() , "Added To Cart " + stock_list , Toast.LENGTH_LONG ).show();
}
});
}
}