0

我是新設計的Firebase數據庫。所以,我有這棵樹看起來像這樣:將Firebase子項作爲ArrayList傳遞給Intent

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個空輸出。我希望這些信息有幫助

回答

0

首先,請驗證所有這些變量是否爲not null - >latitude_longitude_nama_tempat等。要使用活動之間的那些變量,我recomand您使用SharedPreferences如果你需要讓他們的應用程序的所有活動中,或者如果你想擁有它們只在第二個活動,請使用此代碼:

//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); 

和這個代碼,以獲取這些值回:

//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)); 

正如你親可以看到,我已經刪除了for loop,因爲它不是必需的,並且爲每個變量都添加了新的.child("jam")

希望它有幫助。

+0

我的問題是提取「果醬」的孩子,而不是其他人。 Judul,alamat和harga完美地顯示輸出。 –

+0

我明白了。請看我更新的答案。 –

+0

我明白了,所以它不必在for循環中。它以這種方式工作。非常感謝 –