2017-06-08 9 views
0

からの画像:私はリストビューにすべてのデータを表示したいenter image description hereショーのTextViewと私は私のデータベースにこの持ちFirebase

は、私がエラーを持っていませんが、私にテキストと表示されていません画像。私はModelClassを持っている:

public class ModelClass { 
String title,image; 

public ModelClass(String title,String image) { 
    this.image = image; 
    this.title = title; 
} 

public ModelClass() { 
} 

public String getTitle() {return title; } 
public void setTitle(String title) { 
    this.title = title; 
} 
public String getImage() { 
    return image; 
} 
public void setImage(String image) { 
    this.image = image; 
}} 

アダプタ:

public class MyAdapter extends ArrayAdapter<ModelClass> { 
private Activity context; 
private int resource; 
private List<ModelClass> listImage; 

public MyAdapter(@NonNull Activity context, @LayoutRes int resource, @NonNull List<ModelClass> objects) { 
    super(context, resource, objects); 
    this.context = context; 
    this.resource = resource; 
    listImage = objects; 
} 

@NonNull 
@Override 
public View getView(int position, @Nullable View convertView, @NonNull ViewGroup parent) { 
    LayoutInflater inflater = context.getLayoutInflater(); 

    View v = inflater.inflate(resource, null); 
    TextView tvName = (TextView) v.findViewById(R.id.txt_desert); 
    ImageView img = (ImageView) v.findViewById(R.id.iv_desert); 

    tvName.setText(listImage.get(position).getTitle()); 
    Glide.with(context).load(listImage.get(position).getImage()).into(img); 

    return v; 

}} 

そして、リストビューでクラス:

public class Deserturi extends AppCompatActivity { 

private DatabaseReference mDatabaseRef; 
private List<ModelClass> imgList; 
private ListView lv; 
private MyAdapter myAdapter; 
private ProgressDialog progressDialog; 

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_deserturi); 

    imgList = new ArrayList<>(); 
    lv = (ListView) findViewById(R.id.blog_list); 

    progressDialog = new ProgressDialog(this); 
    progressDialog.setMessage("Please wait loading list image..."); 
    progressDialog.show(); 

    mDatabaseRef = FirebaseDatabase.getInstance().getReference("Data"); 

    mDatabaseRef.addValueEventListener(new ValueEventListener() { 
     @Override 
     public void onDataChange(DataSnapshot dataSnapshot) { 
      progressDialog.dismiss(); 


      for (DataSnapshot snapshot : dataSnapshot.getChildren()) { 

       ModelClass img = snapshot.getValue(ModelClass.class); 
       imgList.add(img); 
      } 


      myAdapter = new MyAdapter(Deserturi.this, R.layout.design_row, imgList); 

      lv.setAdapter(myAdapter); 
     } 

     @Override 
     public void onCancelled(DatabaseError databaseError) { 

      progressDialog.dismiss(); 
     } 
    }); 

あなたは私が間違って何をしたかを教えていただけます!おかげ

+0

あなたはJSONの木の絵を含めましたあなたの質問で。実際のJSONをテキストとして置き換えてください.FirebaseデータベースコンソールのExport JSONリンクをクリックすると簡単に取得できます。 JSONをテキストとして検索可能にすることで、実際のデータを使ってテストしたり、答えに使用したりすることができます。一般的には、これは良いことです。 –

答えて

0

は、あなたの活動でこれを試してください:あなたのアダプタで

... 
myAdapter = new MyAdapter(Deserturi.this, R.layout.design_row, imgList); 
lv.setAdapter(myAdapter); 

mDatabaseRef.addValueEventListener(new ValueEventListener() { 
    @Override 
    public void onDataChange(DataSnapshot dataSnapshot) { 
     progressDialog.dismiss(); 

     for (DataSnapshot snapshot : dataSnapshot.getChildren()) { 

      ModelClass img = snapshot.getValue(ModelClass.class); 
      myAdapter.addElement(img); 
     } 

     myAdapter.notifyDataSetChanged(); 
    } 

public void addElement(ModelClass element) { 

    listImage.add(element); 
} 

そして、あなたのモデルに:

public class ModelClass { 
String Nume,imagine; 
... 
+0

ありがとう、あなたは私をたくさん助けました! – CrisABCD

+0

あなたは大歓迎です! – ARP

+0

この回答を受け入れることを検討して、他のユーザーが解決済みであることを確認してください。 –

関連する問題