0

Firebaseデータベースを新たに設計しました。Firebaseの子をArrayListとしてインテントを経由して取得する

I can't display an Image. Here's the Link

問題は、私は、「ジャム」のすべてのデータをフェッチするのArrayListに挿入するために管理することができないで意思を通してそれを透過して、表示される:だから私はこのように見えたこの木を持っていますそれ。ここに私が今まで作ってみたものです:

MapFragment.java

Double latitude_, longitude_; 
    String nama_tempat, kategori, alamat, nomor_telepon, harga, gambar; 
    ArrayList<String> jamOperasional = new ArrayList<>(); 
. 
. 
. 
for(DataSnapshot child : dataSnapshot.child("places").getChildren()) 
       { 
        latitude_ = child.child("latitude").getValue(Double.class); 
        longitude_ = child.child("longitude").getValue(Double.class); 
        nama_tempat = child.child("nama").getValue(String.class); 
        kategori = child.child("kategori").getValue(String.class); 
        alamat = child.child("alamat").getValue(String.class); 
        harga = child.child("harga").getValue(String.class); 
        nomor_telepon = child.child("nomor_telepon").getValue(String.class); 
        gambar = child.child("gambar").getValue(String.class); 
        for (DataSnapshot operasional : child.child("jam").getChildren()) { 
         jamOperasional.add(operasional.child("senin").getValue(String.class)); 
         jamOperasional.add(operasional.child("selasa").getValue(String.class)); 
         jamOperasional.add(operasional.child("rabu").getValue(String.class)); 
         jamOperasional.add(operasional.child("kamis").getValue(String.class)); 
         jamOperasional.add(operasional.child("jumat").getValue(String.class)); 
         jamOperasional.add(operasional.child("sabtu").getValue(String.class)); 
         jamOperasional.add(operasional.child("minggu").getValue(String.class)); 

        } 
DetailsModel detail = new DetailsModel(latitude_, longitude_,nama_tempat, 
          kategori,alamat,harga,nomor_telepon,gambar,jamOperasional); 
. 
. 
. 
DetailsModel detail = detailMarkerMap.get(marker); 
       Intent mainIntent = new Intent(getActivity(),DetailsActivity.class); 
       Bundle bundle = new Bundle(); 
       bundle.putString("Judul", detail.getNama_tempat()); 
       bundle.putString("Alamat", detail.getAlamat()); 
       bundle.putString("Harga", detail.getHarga()); 
       bundle.putString("NomorTelepon", detail.getNomor_telepon()); 
       bundle.putDouble("Latitude", detail.getLatitude()); 
       bundle.putDouble("Longitude", detail.getLongitude()); 
       bundle.putString("Gambar", detail.getGambar()); 
       bundle.putStringArrayList("Jam", detail.getJamOperasional()); 
       mainIntent.putExtras(bundle); 
       getActivity().startActivity(mainIntent); 

DetailsActivity.javaが

for(int i = 0; i < bundle.getStringArrayList("Jam").size(); i++) { 
      placeHours.append(bundle.getStringArrayList("Jam").get(i) + "\n"); 
     } 

これは、約10行++のために私にヌル出力を与えました。少なくともそれが間違っていれば、7つのヌル出力を出力するはずです。その上>latitude_longitude_nama_tempatと - これらの変数のすべてがnot nullをしている場合、私はこの情報がすべての

答えて

0

まず役に立てば幸い、確認してください。

//In First Activity 
Intent mainIntent = new Intent(getActivity(), DetailsActivity.class); 
intent.putExtra("Judul", detail.getNama_tempat()); 
intent.putExtra("Alamat", detail.getAlamat()); 
intent.putExtra("Harga", detail.getHarga()); 
//and so on 
startActivity(mainIntent); 

と:活動の間でこれらの変数を使用するには、私はあなたが唯一の第二の活動でそれらを持っているしたい場合は、このコードを使用してくださいか、あなたのアプリのすべての活動の中にそれらを持っている必要がある場合は、SharedPreferencesを使用してrecomandこのコードは、バックこれらの値を取得する:

//In Second Activity 
String Judul = (String) getIntent().getExtras().get("Judul"); 
String Alamat = (String) getIntent().getExtras().get("Alamat"); 
String Harga = (String) getIntent().getExtras().get("Harga"); 
//and so on 

を取得し、正しい方法で他の値は、このコードを使用してくださいするには:あなたがプロとして

jamOperasional.add(operasional.child("jam").child("senin").getValue(String.class)); 
jamOperasional.add(operasional.child("jam").child("selasa").getValue(String.class)); 
jamOperasional.add(operasional.child("jam").child("rabu").getValue(String.class)); 
jamOperasional.add(operasional.child("jam").child("kamis").getValue(String.class)); 
jamOperasional.add(operasional.child("jam").child("jumat").getValue(String.class)); 
jamOperasional.add(operasional.child("jam").child("sabtu").getValue(String.class)); 
jamOperasional.add(operasional.child("jam").child("minggu").getValue(String.class)); 

すべての対応する変数に新しい.child("jam")が追加されているので、私はそれを削除しました。それはfor loopです。

希望します。

+0

私の問題は、「Jam」の子を取得することで、他のものは取得しません。 Judul、alamat、hargaは出力を完全に表示します。 –

+0

私は理解します。私の更新された答えを見てください。 –

+0

私は見るので、forループ上にある必要はありません。このように動作します。どうもありがとう –

関連する問題