Önemli bir değer sisteminden çıkacak bir otomatik tamamlama görünümü üzerinde çalışıyorum ve yayınlama Sonuçlarının işe yaraması için ne yapmam gerektiğini bulmaya çalışıyorum, çünkü sonuçlar paramın yayınlanmaya başlaması Burada hata ayıklayıcıda doğrudur, Bununla birlikte, neye karşılık gelmesi gerektiğine veya sonuçların nasıl gösterileceğine dair hiçbir fikrim yok, herkes yardımcı olabilir mi? Bu nesnenin yaratılması başka dosyada olduğunu ve şu şekilde görünür:Android'de Filtreler genişletilirken publishResults() yöntemini nasıl kullanırım?
autoCompleteBox.setAdapter(new AutoCmpAdapter(this, android.R.layout.simple_dropdown_item_1line));
ve aşağıdaki gibi kod gerisi: Herşeyden
public class AutoCmpAdapter extends ArrayAdapter<String> implements Filterable {
protected Filter filter;
protected ArrayList<String> items;
protected ArrayList<String> res;
String lWds[] = { "HOMER", "TOM" };
String sWds[] = { "SIMPSON", "JONES" };
public AutoCmpAdapter(Context context, int textViewResourceId) {
super(context, textViewResourceId);
filter = new PhysFilter();
res = new ArrayList<String>();
}
public Filter getFilter() {
return filter;
}
private class PhysFilter extends Filter {
@Override
protected FilterResults performFiltering(CharSequence constraint) {
FilterResults f = new FilterResults();
res.clear();
if (constraint != null) {
ArrayList<String> res = new ArrayList<String>();
for (int x = 0; x < sWds.length; x++) {
if (sWds[x].toUpperCase().startsWith(constraint.toString().toUpperCase())) {
res.add(lWds[x]);
}
}
f.values = res.toArray();
f.count = res.size();
}
return f;
}
@Override
protected void publishResults(CharSequence constraint, FilterResults results) {
if (results.count > 0) {
Log.println(Log.INFO, "Results", "FOUND");
notifyDataSetChanged();
} else {
Log.println(Log.INFO, "Results", "-");
notifyDataSetInvalidated();
}
}
}
}
+1 Güzel çözümü gibi onCreate
ve adaptör sınıfında bu deneyin .. Eğer varsa deyimi ayarlayabilirsiniz anahtar değer çifti için çalışmak. –
lWds, publishResults içinde nereden geliyor? –
@artworkad シ sağdaki işaret parmağından, sol işaret parmağı olduğunu mu düşünüyorsunuz? Haha..s, OP'nin kodundan – whyoz