java - 将 TextView 动态添加到排行榜屏幕

标签 java android

我的应用程序中有一个排行榜屏幕,我想在其中添加每个用户的分数。 到目前为止,我已经能够从数据库中检索分数,但我想在排行榜屏幕上显示这些分数。

我有这段代码,但是 for 循环设置了 textView 的文本,并且不是显示每个分数,而是只显示循环的最后一个分数。是否有办法不覆盖 textView,而是创建并显示多个 textView?

package com.example.securityapp;

import androidx.appcompat.app.AppCompatActivity;

import android.nfc.Tag;
import android.os.Bundle;
import android.util.Log;
import android.widget.TextView;

import com.google.firebase.auth.FirebaseAuth;
import com.google.firebase.auth.FirebaseUser;
import com.google.firebase.database.DataSnapshot;
import com.google.firebase.database.DatabaseError;
import com.google.firebase.database.DatabaseReference;
import com.google.firebase.database.FirebaseDatabase;
import com.google.firebase.database.Query;
import com.google.firebase.database.ValueEventListener;

import static java.lang.System.in;

public class leaderboard extends AppCompatActivity {

    DatabaseReference databaseUsers;
    FirebaseDatabase database = FirebaseDatabase.getInstance();
    FirebaseAuth mAuth;
    TextView score;
    private static final String TAG = "leaderboard";



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

        mAuth = FirebaseAuth.getInstance();
        FirebaseUser user = mAuth.getCurrentUser();
        score = (TextView) findViewById(R.id.tableText);


        database.getReference().child("Scores").addValueEventListener(new ValueEventListener() {
            public void onDataChange(DataSnapshot dataSnapshot) {
                for (DataSnapshot snapshot : dataSnapshot.getChildren()) {
                        System.out.println("The score is: " + snapshot.toString());
                        score.setText(snapshot.toString());
                    }
                }


            @Override
            public void onCancelled(DatabaseError databaseError) {
             // Getting Post failed, log a message
             Log.w(TAG, "loadPost:onCancelled", databaseError.toException());

    }


});

        }
}

最佳答案

当循环再次开始时只需追加字符串

获取全局变量字符串 s="";

s = s + snapshoot.toString();

关于java - 将 TextView 动态添加到排行榜屏幕,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60240898/

相关文章:

java - 实现 Nashorn ClassFilter 等价物

Android设备USB调试

android - 如何更改标准系统按钮的背景透明度

android - 在 webView 上显示电子邮件?

android - 来自Android手机的POST请求中的特殊字符消失

java - 搜索和统计文本文件中的单词片段

java - Arraylist不是FIFO吗?

java - 为什么setOnClickListener()必须在onCreate()内部?

java - 我将如何管理 HashMap 中的队列?

java - 如何构建可扩展的多应用程序并能够扩展某些应用程序组件?