2017-11-25 63 views
0

我想查看其他活動列表視圖中的所有數據。沒有在生成數據的同一個活動中。檢查這張圖片。 here the output image 如何在不同的活動中查看Firebase數據(ListView格式)?

這裏的數據顯示在同一活動中我通過firebase插入的位置。我想在另一個活動中顯示列表視圖部分。我怎樣才能做到這一點 ?以及如何查看上面插入的數據? 查看數據的代碼。用於插入數據

private void Add(){ 


    String dt= ki.getText().toString().trim(); 
    String ct = costt.getText().toString().trim(); 
    String nm = spn.getSelectedItem().toString(); 

    if(!TextUtils.isEmpty(dt)){ 
     String id= databaseBazars.push().getKey(); 
     ADeposit bz= new ADeposit(id,nm,ct,dt); 
     databaseBazars.child(id).setValue(bz); 
     Toast.makeText(this,"Inserted",Toast.LENGTH_SHORT).show(); 


    } 
    else{ 
     Toast.makeText(this,"Please Enter Valid Data",Toast.LENGTH_SHORT).show(); 

    } 

} 

和這裏

@Override 
protected void onStart() { 
    super.onStart(); 

    databaseBazars.addValueEventListener(new ValueEventListener() { 

     @Override 
     public void onDataChange(DataSnapshot dataSnapshot) { 

      abc.clear(); 
      for(DataSnapshot ds :dataSnapshot.getChildren()) { 
       ADeposit ks = ds.getValue(ADeposit.class); 
       abc.add(ks); 
      } 
      DepositList adapter = new DepositList(AdminloginEnter.this,abc); 
      deposit.setAdapter(adapter); 
     } 


     @Override 
     public void onCancelled(DatabaseError databaseError) { 

     } 
    }); 
} 

和這裏代碼是存款列表類。

import com.sonalirod.alwayswhite.Model.ADeposit; 


import java.util.List; 

public class DepositList extends ArrayAdapter<ADeposit> { 
    private Activity context; 
    private List<ADeposit> abc; 

    public DepositList(Activity context,List<ADeposit>abc){ 
     super(context, R.layout.list_layout_deposit,abc); 
     this.context=context; 
     this.abc=abc; 
    } 

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

     View ListViewItem= inflater.inflate(R.layout.list_layout_deposit,null,true); 
     TextView texviewname=(TextView) ListViewItem.findViewById(R.id.namet); 
     TextView textviewcost=(TextView) ListViewItem.findViewById(R.id.amountt); 
     TextView textviewdate =(TextView) ListViewItem.findViewById(R.id.datu); 


     ADeposit ad = abc.get(position); 

     texviewname.setText(ad.getName()); 
     textviewcost.setText(ad.getAmount()); 
     textviewdate.setText(ad.getDat()); 
     return ListViewItem; 
    } 
} 

誰幫助從firebase查看。如果有人想要我也可以提供模型類。但我的代碼是完美的工作。我只想知道**我怎樣才能顯示在另一個活動的列表視圖**也如何可以看到第一個(上)地方最後插入的數據。

+0

從另一個活動數據庫中檢索列表 –

+0

好吧,我必須再次執行相同的代碼? – Meeyan

+0

是使用監聽器在其他活動中檢索它們,因爲您不希望它們在第一個活動中,那麼只需在第二個活動中檢索它們 –

回答

0

要在其他活動中檢索數據,你需要使用一個監聽器有例如valueEventListener,排序的數據做到這一點:

//inside onDatachange or onChildAdded 
    String inputs= dataSnapshot.child("ks").getValue().toString(); 
       arraylist.add(inputs); 
       HashSet<String> hashSet = new HashSet<String>(); 
       hashSet.addAll(arraylist); 
       arraylist.clear(); 
       arraylist.addAll(hashSet); 

       //Alphabetic sorting. 
       Collections.sort(editlists); 
       adapter= new ArrayAdapter<>(Activity.this, android.R.layout.simple_list_item_1, arraylist); 

       list.setAdapter(adapter); 

首先檢索添加通常情況下,將它們添加到您的arraylist,那麼你將能夠使用HashSet對它進行排序(最後一項添加將在最後)

+0

兄弟我有一個問題。這裏的arraylist顯示紅色。我不需要alphabate排序我只需要。最後插入的數據放在第一位。如果你看一下圖像,那麼你可以得到它。我想要頂部的「Nayon」零件數據(最後插入的).i表示高於「Saikat」零件。 – Meeyan

+0

@Meeyan如果這回答了您的問題,請立即將其標記爲正確,將答案標記爲已接受,請單擊答案旁邊的複選標記以將其從灰色變爲填充。 –

相關問題