Mein Adapter ist nicht auf Listenansicht festgelegt. Im Logcat ist kein Fehler und in der Liste befinden sich Daten.Adapter nicht auf Listenansicht Android
lv = (ListView) vi.findViewById(R.id.list);
// Get a reference to our posts
final FirebaseDatabase database = FirebaseDatabase.getInstance();
DatabaseReference ref = database.getReference().child("chatusers");
urlList = new ArrayList<List>();
final ProgressDialog Dialog = new ProgressDialog(getActivity());
Dialog.setMessage("Please wait...");
Dialog.show();
// Attach a listener to read the data at our posts reference
ref.addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
String chatwithname, foodname, foodimage;
for (DataSnapshot messageSnapshot : dataSnapshot.getChildren()) {
Log.d("chatwithname", messageSnapshot.child("chatwithname").getValue().toString());
chatwithname = messageSnapshot.child("chatwithname").getValue().toString();
foodname = messageSnapshot.child("foodname").getValue().toString();
foodimage = messageSnapshot.child("foodimage").getValue().toString();
Log.d("chatusers", chatwithname + "" + foodname + "" + foodimage);
List list1 = Arrays.asList(chatwithname, foodname, foodimage);
urlList.add(list1);
Log.d("urlList", urlList.toString());
}
chatusersAdapter chat = new chatusersAdapter(
getActivity(),urlList);
lv.setAdapter(chat);
Dialog.hide();
}
@Override
public void onCancelled(DatabaseError databaseError) {
System.out.println("The read failed: " + databaseError.getCode());
}
});
Meine Adapterklasse
public class chatusersAdapter extends ArrayAdapter<List> {
private final Context context;
List<List> DialogList = new ArrayList<List>();
public chatusersAdapter(Context context, List<List> values) {
super(context, R.layout.chatusers_list, values);
this.context = context;
this.DialogList = values;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
LayoutInflater inflater = (LayoutInflater) context
.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
Log.d("getview","getview");
final int i=position;
List dialog = DialogList.get(i);
Log.d("chatwithusername", dialog.get(0).toString());
ViewHolder holder;
ImageView imageViews;
if (convertView == null) {
LayoutInflater layoutInflator = LayoutInflater.from(getContext());
convertView = layoutInflator.inflate(R.layout.chatusers_list, null);
holder = new ViewHolder();
holder.chat_with_user = (TextView) convertView.findViewById(R.id.chat_with_user);
holder.item_name = (TextView) convertView.findViewById(R.id.item_name);
holder.img_product = (ImageView) convertView.findViewById(R.id.img_product);
convertView.setTag(holder);
}
holder = (ViewHolder) convertView.getTag();
holder.chat_with_user.setText(dialog.get(0).toString());
holder.item_name.setText(dialog.get(1).toString());
Glide.with(context).load(dialog.get(2).toString()).into(holder.img_product);
return convertView;
}
@Override
public int getCount() {
Log.d("asifa",String.valueOf(DialogList.size()));
return DialogList.size();
}
static class ViewHolder {
ImageView img_product;
TextView item_name;
TextView chat_with_user;
}
}
Die Liste im Protokoll angezeigt wird, gibt Daten in der Liste ist, aber es ist nicht zur Listenansicht einstellen. Das Problem ist hier
`chatusersAdapter chat = new chatusersAdapter(getActivity(),urlList); lv.setAdapter(chat);`
Der Adapter wird nicht aufgerufen. Kann jemand bitte helfen?
Sie versuchen, einige Stützpunkte Einstellung sollte zu überprüfen, ob OnDataChange wirklich aufgerufen wird, es es ist die for-Schleife eintritt, wenn UrlList tatsächlich mit bevölkert wird Daten, wenn getView in Ihrem Adapter aufgerufen wird. Das würde ich tun. – Tharkius
urlList ist ausgefüllt. aber getView wird nicht aufgerufen. – asifa