我的应用程序中有一个活动,我想显示所有经过身份验证的用户的列表。为此我使用listview和arrayadapter。
问题:当我查询我的用户并在列表视图中显示它们时,列表显示两行都包含“null”。我不知道为什么。
import sys
from PyQt5.QtWidgets import *
class CustomWidget(QWidget):
def __init__(self):
super().__init__()
self.layout = QVBoxLayout(self)
self.setLayout(self.layout)
self.innerwidget=QWidget()
self.layout.addWidget(self.innerwidget)
self.innerwidget.setFixedSize(50,50)
self.setFixedSize(100,100)
self.setStyleSheet("background-color:blue;")
class MainWindow(QMainWindow):
def __init__(self):
super().__init__()
self.CentralWidget=QWidget()
self.setCentralWidget(self.CentralWidget)
self.CentralWidget.setStyleSheet("background-color:green;")
self.CentralWidget.resize(1000,600)
self.Layout=QHBoxLayout()
self.CentralWidget.setLayout(self.Layout)
#----Script---------
App=QApplication(sys.argv)
TestWindow=MainWindow()
#This one is there, since I can´t reduce the size of the MainWindow further than 100x100,
# but it doesnt get drawn
TestWidget=CustomWidget()
TestWindow.Layout.addWidget(TestWidget)
#This one is shown correctly
TestWidget2=CustomWidget()
TestWidget2.show()
TestWindow.show()
App.exec()
数据库
答案 0 :(得分:1)
据我所知,您的database
已经指向特定学校的特定用户。例如,路径/SomeSchoolName/Users/LAGbzHr...
包含单个用户的属性。在这种情况下,不需要监听器中的for
循环,实际上会使您在JSON中过深一级。
这对您共享的数据结构应该更好:
users.addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
userArray.add(dataSnapshot.child("username").getValue(String.class)) ;
ArrayAdapter adapter = new ArrayAdapter(StudentListActivity.this, android.R.layout.simple_list_item_1, userArray);
userList.setAdapter(adapter);
}