如何从TextView替换数据而不是从firebase数据库添加到TextView?

时间:2017-07-10 15:58:41

标签: android firebase foreach firebase-realtime-database textview

我在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);
}}

1 个答案:

答案 0 :(得分:2)

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

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