2017-07-10 110 views
0

我正在从Firebase数据库填充文本视图。当我向数据库添加一个额外的子项(names)时,TextView会保留以前的数据并重复以前的数据和新的子项。我想解雇以前的数据,只是有更新的版本。例如TextView的填充与如何从TextView替换数据而不是从Firebase数据库添加到TextView?

Mary, John 

但是当我添加一个额外的孩子的TextView与

Mary, John, Mary, John, Adam 

填充我只想TextView的来填充Mary, John, Adam

这里是我的代码

TextView stringTextView; 

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

    stringTextView = (TextView) findViewById(R.id.textView2); 

    DatabaseReference rootRef = FirebaseDatabase.getInstance().getReference(); 
    DatabaseReference ref = rootRef.child("County").child("Dublin").child("contacts"); 

    ValueEventListener eventListener = new ValueEventListener() { 
     @Override 
     public void onDataChange(DataSnapshot dataSnapshot) { 
      ArrayList<String> names = new ArrayList<>(); 
      for (DataSnapshot ds : dataSnapshot.getChildren()) { 
       String name = ds.child("name").getValue(String.class); 
       // Log.d("TAG", name); 
       names.add(name); 
       //String number = ds.child("number").getValue(String.class); 
       //Log.d("Name", name + "/" + number); 
      } 
      for (String name : names) { 
       //stringTextView = (TextView) findViewById(R.id.textView2); 
       stringTextView.setText(stringTextView.getText().toString() + name + " , "); 
      } 
     } 

     @Override 
     public void onCancelled(DatabaseError databaseError) { 
     } 
    }; 

    ref.addValueEventListener(eventListener); 
}} 

回答

2
ValueEventListener eventListener = new ValueEventListener() { 
    @Override 
    public void onDataChange(DataSnapshot dataSnapshot) { 
    **stringTextview.setText(" ")** 

这就是我要做的,每当我捕捉到一个新的数据快照时,将文本更改为空:)

+0

完美,这没有窍门:) – user2387962

+0

太棒了!很高兴我帮了忙。 – Velix007

相关问题