2017-09-20 5 views
0

は私がリストビューを印刷したいと私はクリックしたときに項目がアイテムリストビューをFirebaseの名前と同じにするにはどうすればいいですか?

例firebaseデータベース内の値に等しい新しいリストビューに行くレストランは

  • ヤム・ヤム
    • Guichが表示されます

    私はGuichが表示されますクリックすると

    • ピッツZA
    • ハンバーガー

    Firebase image

    public class RestaurantActivity extends AppCompatActivity { 
    
    FirebaseDatabase database = FirebaseDatabase.getInstance(); 
    final DatabaseReference myRef = database.getReference("Restaurant"); 
    private ListView lv; 
    
    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
        super.onCreate(savedInstanceState); 
        setContentView(R.layout.activity_restaurant); 
        lv=(ListView) findViewById(R.id.listview); 
        myRef.addValueEventListener(new ValueEventListener() { 
         @Override 
         public void onDataChange(DataSnapshot dataSnapshot) { 
          final List<String> areas = new ArrayList<String>(); 
          for (DataSnapshot areaSnapshot: dataSnapshot.getChildren()) { 
           String value1 = String.valueOf(areaSnapshot.getValue()); 
           areas.add(value1); 
          } 
          ArrayAdapter<String> areasAdapter = new ArrayAdapter<String>(PlateActivity.this,android.R.layout.simple_expandable_list_item_1, areas); 
          lv.setAdapter(areasAdapter); 
         } 
    
         @Override 
         public void onCancelled(DatabaseError databaseError) { 
          Log.d("Error", "Something happened"); 
         } 
        }); 
    } 
    
    } 
    
    public class PlateActivity extends AppCompatActivity { 
    
    FirebaseDatabase database = FirebaseDatabase.getInstance(); 
    final DatabaseReference myRef = database.getReference(""); 
    private ListView lv; 
    
    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
        super.onCreate(savedInstanceState); 
        setContentView(R.layout.activity_plate); 
        lv=(ListView) findViewById(R.id.listview); 
        myRef.addValueEventListener(new ValueEventListener() { 
         @Override 
         public void onDataChange(DataSnapshot dataSnapshot) { 
          final List<String> areas = new ArrayList<String>(); 
          for (DataSnapshot areaSnapshot: dataSnapshot.getChildren()) { 
           String value1 = String.valueOf(areaSnapshot.getValue()); 
           areas.add(value1); 
          } 
          ArrayAdapter<String> areasAdapter = new ArrayAdapter<String>(PlateActivity.this,android.R.layout.simple_expandable_list_item_1, areas); 
          lv.setAdapter(areasAdapter); 
         } 
    
         @Override 
         public void onCancelled(DatabaseError databaseError) { 
          Log.d("Error", "Something happened"); 
         } 
        }); 
    } 
    
    } 
    

    答えて

    0

    私はそれを行う方法を知っている唯一の方法は、すべてのキーをキャプチャされ、その後、あなたは、リストの項目をクリックすると、そのキーを保持して、適切な位置を呼び出しますと値。あなたのリストListener

    for (DataSnapshot areaSnapshot: dataSnapshot.getChildren()) { 
        String value1 = String.valueOf(areaSnapshot.getValue()); 
        areas.add(value1); 
        //areaSnapshot.getKey.toString(); add to local array (keyArray) 
    } 
    

    ような何か:keyArray.get(position)をして、新しいリストに新しいFirebaseスナップショットを呼び出すために、この文字列を使用します。

    関連する問題