2016-08-10 1 views
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

のスナップショットですが空

です

enter image description here

答えて

0

あなたのリストは空ではなく、アダプターは何も追加していないことを知りません。

@Override 
public void onChildAdded(DataSnapshot dataSnapshot, String s) { 
    temp=dataSnapshot.getValue(newJob.class); 
    job1.add(temp); 
    // Need to update the ListView Adapter 
} 

あなたは、アダプタ上notifyDataSetChanged()を呼び出す必要がある、またはあなたが代わりにjob1.add()

ノートの代わりにadapter.add()を使用する必要があります次のいずれか:私は、アダプタを言うが、あなたのクラスはCustomListと呼ばれています。命名規則に固執してより具体的な名前を付け、末尾にAdapterと書いてください。同様に、work_available_listのJavaクラスはCamelCasedであり、lowercase_wordsではなく、Activityである必要があります。

+0

あなたが言った変更を行いました。残念ながら、それは仕事をしなかった。データがgetViewに移動していません。 –

+0

これが表示されます。そうしないと、データベースが空になる可能性があります。 Logcatにいくつかのprint文を追加して、実行されているコード行を判断しようとしましたか? –

+0

私のデータはリストで取得されますが、customListAdaptorには行きません –

関連する問題