我在firebase数据库中填充Textview。当我向数据库添加一个额外的子项(names
)时,TextView会保留以前的数据并重复以前的数据和新的子项。我想要删除以前的数据,只是拥有更新版本。例如,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);
}}
答案 0 :(得分:2)
ValueEventListener eventListener = new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
**stringTextview.setText(" ")**
这就是我要做的,每当我捕获新的数据快照时,将文本更改为空:)