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にいくつかのprint文を追加して、実行されているコード行を判断しようとしましたか? –
私のデータはリストで取得されますが、customListAdaptorには行きません –