0
我從Firebase檢索數據以填充自定義列表。我的數據在onChildAdded事件中被檢索到,但它不會添加到我的自定義列表中。我的自定義列表是空自定義列表不計費
這裏是我設置列表適配器
package com.example.manas.worknhire;
import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.util.Log;
import android.widget.ListView;
import com.google.firebase.database.ChildEventListener;
import com.google.firebase.database.DataSnapshot;
import com.google.firebase.database.DatabaseError;
import com.google.firebase.database.DatabaseReference;
import com.google.firebase.database.FirebaseDatabase;
import java.util.ArrayList;
public class work_available_list extends AppCompatActivity implements ChildEventListener {
ListView work_list;
newJob temp=new newJob();
ArrayList<newJob> job1=new ArrayList<newJob>();
FirebaseDatabase db=FirebaseDatabase.getInstance();
DatabaseReference myref=db.getReference();
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_work_available_list);
work_list=(ListView)findViewById(R.id.work_list_items);
myref=myref.child("jobsPosted");
myref.addChildEventListener(this);
CustomList list1=new CustomList(this,job1);
work_list.setAdapter(list1);
}
@Override
public void onChildAdded(DataSnapshot dataSnapshot, String s) {
temp=dataSnapshot.getValue(newJob.class);
job1.add(temp);
}
@Override
public void onChildChanged(DataSnapshot dataSnapshot, String s) {
}
@Override
public void onChildRemoved(DataSnapshot dataSnapshot) {
}
@Override
public void onChildMoved(DataSnapshot dataSnapshot, String s) {
}
@Override
public void onCancelled(DatabaseError databaseError) {
}
}
我的主要活動在這裏是我的自定義列表代碼
package com.example.manas.worknhire;
import android.app.Activity;
import android.content.Context;
import android.util.Log;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ArrayAdapter;
import android.widget.Button;
import android.widget.TextView;
import java.util.ArrayList;
/**
* Created by Manas on 7/12/2016.
*/
public class CustomList extends ArrayAdapter<String>{
private final ArrayList<newJob> job1;
private final Activity context;
public CustomList(Activity context, ArrayList<newJob> job1) {
super(context,R.layout.list_row);
this.job1=job1;
this.context = context;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
LayoutInflater inflater=context.getLayoutInflater();
View rowView=inflater.inflate(R.layout.list_row, null, true);
TextView title=(TextView)rowView.findViewById(R.id.title_job);
TextView description=(TextView)rowView.findViewById(R.id.description_job);
TextView postedBy=(TextView)rowView.findViewById(R.id.postedBy_job);
Button contact=(Button)rowView.findViewById(R.id.contact_job);
Log.w("title",job1.get(position).getJob_title());
title.setText(job1.get(position).getJob_title());
description.setText(job1.get(position).getJob_description());
postedBy.setText(job1.get(position).getName());
return rowView;
}
}
這裏是listrow
的快照
我做了你所說的改變。不幸的是它沒有工作。我的數據沒有移動到getView。 –
它應該顯示。否則你的數據庫可能是空的。您是否曾嘗試向Logcat添加一些打印語句以確定哪些代碼行被執行? –
我的數據是在列表中檢索的,但它不會去customListAdaptor –