Ich versuche, AutoCompleteTextView
mit meiner benutzerdefinierten ArrayAdapter
zu füllen. Ich denke, es funktioniert gut mit Hinzufügen von Anzeigewerten. Das einzige Problem ist, dass kein Dropdown angezeigt wird. Weiß jemand, wie dieses Dropdown sichtbar ist? Jedes Mal, wenn ich das Drop-down sehen sollte, kann ich log Meldung sagen:DisplayListCanvas wird auf ungebundenem RenderNode (ohne mOwningView) gestartet
DisplayListCanvas: DisplayListCanvas auf ungebundener RenderNode gestartet (ohne mOwningView)
Mein Adaptercode:
public class UserSearchAdapter extends ArrayAdapter<Profile> {
Context context;
ArrayList profiles;
public UserSearchAdapter(Context context, int resource, ArrayList<Profile> objects) {
super(context, resource, objects);
this.context = context;
this.profiles = objects;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
if (convertView == null) {
convertView = LayoutInflater.from(this.getContext())
.inflate(R.layout.single_user_item, parent, false);
}
Profile profile = (Profile) profiles.get(position);
TextView text = (TextView) convertView.findViewById(R.id.single_user_name_text);
text.setText(profile.getDisplayName());
return convertView;
}
}
Mein MainActivity-Code:
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_member_supervisor);
activity = MemberSupervisorActivity.this;
Firebase.setAndroidContext(this);
autoCompleteUser = (AutoCompleteTextView) findViewById(R.id.auto_members);
profiles = new ArrayList<>();
members = new UserSearchAdapter(activity, R.layout.single_user_item, profiles);
autoCompleteUser.setAdapter(members);
autoCompleteUser.setThreshold(1);
autoCompleteUser.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) {
}
@Override
public void afterTextChanged(Editable s) {
final Query auto = new Firebase(Constants.FIREBASE_USER_PROFILE).orderByChild("displayName").startAt(autoCompleteUser.getText().toString()).endAt(autoCompleteUser.getText().toString() + "~");
auto.addListenerForSingleValueEvent(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
profiles.clear();
Log.d("entered", autoCompleteUser.getText().toString());
for (DataSnapshot data : dataSnapshot.getChildren()) {
Profile profile = data.getValue(Profile.class);
profiles.add(profile);
Log.d("results", profile.getDisplayName());
}
members.notifyDataSetChanged();
}
@Override
public void onCancelled(FirebaseError firebaseError) {
}
});
}
});
}
Also ich laufe in die "DisplayListCanvas ..." Warnung, und dies ist nicht nur das oberste Ergebnis, sondern eines der einzigen Ergebnisse. Ich frage mich, ob Sie mir helfen können – Benjamin