Wie kann ich nach dem Filtern einer Listenansicht die Position der ersten Listenansicht ermitteln?
Wie kann ich nach dem Filtern einer Listenansicht die Position der ersten Listenansicht ermitteln? Ich benutze simpleadapter, um die Listenansicht zu füllen. Jedes Element in der Datenquelle hat eine eigene ID, und ich verwende "case", um sie umzuleiten. Nachdem ich die Listenansicht gefiltert habe, weiß ich nicht, wie ich die letzteren Elemente mit der ersten Listenansicht verknüpfen soll. Die Position und die ID haben sich geändert. Vielen Dank.
Ich benutze den afterTextChanged von EditTextView, um die Listenansicht zu filtern und zu benachrichtigen. @Override
public void afterTextChanged(Editable paramEditable) {
listItemsCopy.clear();
int count=simpleAdapter.getCount();
if ((count>0 )&¶mEditable.length()>0) {
for (int i = 0; i < simpleAdapter.getCount(); i++) {
Map<String,Object> tempMap=(Map<String,Object>)simpleAdapter.getItem(i);
String itemName=tempMap.get("name").toString();
HashMap<String, Object> tempHashMap=new HashMap<String, Object>();
int copyCount=0;
if(itemName.toLowerCase().contains(paramEditable.toString().toLowerCase())){
tempHashMap=(HashMap<String, Object>)simpleAdapter.getItem(i);
listItemsCopy.add(tempHashMap);
copyCount++;
}
}
if(listItemsCopy!=null){
Handler handler=new Handler();
handler.postDelayed(new Runnable() {
@Override
public void run() {
simpleAdaptercopy = new SimpleAdapter(getActivity(),
listItemsCopy, R.layout.right_menu_list_view, new String[] {
"name", "id", "image" }, new int[] {
R.id.rightMenuListViewTextView1,
R.id.rightMenuListViewTextView2,
R.id.rightMenuListViewImageView1 });
simpleAdapter.setViewBinder(new ViewBinder() {
@Override
public boolean setViewValue(View view, Object data,
String textRepresentation) {
if ((view instanceof ImageView && data instanceof Bitmap)) {
ImageView iv = (ImageView) view;
iv.setImageBitmap((Bitmap) data);
return true;
} else {
return false;
}
}
});
listView.setAdapter(simpleAdaptercopy);
simpleAdapter.notifyDataSetChanged();
}
}, 1000);
}
}
else {
listView.setAdapter(simpleAdapter);
simpleAdapter.notifyDataSetChanged();
}
}
Dann möchte ich die Methode onItemClick of listview verwenden, um verschiedene Intent umzuleiten. Da sich die Datenquelle geändert hat, unterscheiden sich Position und ID von der gewünschten
@Override
public void onItemClick(AdapterView<?> parent, View view,
int position, long id) {
Intent intent = null;
switch (position) {}`