我的应用程序中有一个排行榜屏幕,我想在其中添加每个用户的得分。 到目前为止,我已经能够从数据库中检索分数,但是我想在排行榜屏幕上显示这些分数。
我有这段代码,但是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());
}
});
}
}
答案 0 :(得分:0)
只需在循环再次开始时添加字符串
采用全局变量字符串s =“”;
s = s + snapshoot.toString();
答案 1 :(得分:0)
您可以每次连接字符串,但是如果要保存它们,可以使用function getHistory(){
return document.getElementById("history-value").innerText;
}
document.addEventListener( 'DOMContentLoaded', function( event ) {
alert(getHistory());
});
。
首先,您可以将分数保存在sharedPreference中,并且每次调用<div class="result">
<div class="history">
<p id="history-value">55555</p>
</div>
<div class="output">
<p id="output-value" class="output-value">7777777</p>
</div>
</div>
函数时,都可以将newScore连接到先前的分数。
像这样:
sharedPrefenrece
以及onDataChanged函数中:
onDataChanged