Java Android微调器不显示所选文本

Java Android微调器不显示所选文本,java,android,firebase,spinner,Java,Android,Firebase,Spinner,我将数据从firestore数据库拉入ArrayList,然后将这些对象加载到微调器中。当我打开微调器进行选择时,所有对象都会正确显示,但当从微调器中选择对象时,微调器将保持空白且不显示任何文本。我已经尝试添加adapter.notifyDataSetChanged()

我将数据从firestore数据库拉入ArrayList,然后将这些对象加载到微调器中。当我打开微调器进行选择时,所有对象都会正确显示,但当从微调器中选择对象时,微调器将保持空白且不显示任何文本。我已经尝试添加
adapter.notifyDataSetChanged()
这是我的java文件:

public class AdminEditor extends AppCompatActivity {

    FirebaseFirestore db;
    CollectionReference usersRef;

    ArrayList<UserItem> users;

    Spinner spinnerUser;
    Button btnGetData;
    TextView txtTest;

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

        //Set up FireStore and references
        db = FirebaseFirestore.getInstance();
        usersRef = db.collection("users");

        //Set up resources
        txtTest = findViewById(R.id.txtTest);
        spinnerUser = findViewById(R.id.spinnerUser);
        btnGetData = findViewById(R.id.btnGetData);

        users = new ArrayList<UserItem>();

        loadUsers();
        updateSpinner();

    }

    public void loadUsers() {
        usersRef.get()//Get entire users collection
                .addOnSuccessListener(new OnSuccessListener<QuerySnapshot>() {
                    @Override
                    public void onSuccess(QuerySnapshot queryDocumentSnapshots) {
                        for (QueryDocumentSnapshot documentSnapshot : queryDocumentSnapshots) {
                            users.add((UserItem)documentSnapshot.toObject(UserItem.class));//Add each user from the collection to the arraylist
                        }
                    }
                });
    }

    //To fill spinners with data
    public void updateSpinner() {
        ArrayAdapter<UserItem> adapter = new ArrayAdapter<UserItem>(this, android.R.layout.simple_spinner_item, users);
        adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
        spinnerUser.setAdapter(adapter);
        spinnerUser.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
            @Override
            public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {
                UserItem user = (UserItem) parent.getSelectedItem();
            }

            @Override
            public void onNothingSelected(AdapterView<?> parent) {
            }
        });
    }
} 
公共类AdminEditor扩展AppCompative活动{
FirebaseFirestore数据库;
收集参考用户sref;
ArrayList用户;
纺纱机;
按钮btnGetData;
TextView-txtTest;
@凌驾
创建时受保护的void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity\u admin\u编辑器);
//设置FireStore和引用
db=FirebaseFirestore.getInstance();
usersRef=db.collection(“用户”);
//建立资源
txtTest=findViewById(R.id.txtTest);
spinnerUser=findViewById(R.id.spinnerUser);
btnGetData=findViewById(R.id.btnGetData);
users=newarraylist();
loadUsers();
updateSpiner();
}
公共void loadUsers(){
usersRef.get()//获取整个用户集合
.addOnSuccessListener(新的OnSuccessListener(){
@凌驾
成功时公共无效(QuerySnapshot QueryDocumentSnapshot){
用于(QueryDocumentSnapshot文档快照:QueryDocumentSnapshot){
users.add((UserItem)documentSnapshot.toObject(UserItem.class));//将集合中的每个用户添加到arraylist
}
}
});
}
//用数据填充微调器
public void updateSpiner(){
ArrayAdapter=新的ArrayAdapter(这是android.R.layout.simple\u微调器\u项,用户);
setDropDownViewResource(android.R.layout.simple\u微调器\u下拉菜单\u项);
喷丝头用户设置适配器(适配器);
spinnerUser.setOnItemSelectedListener(新AdapterView.OnItemSelectedListener()){
@凌驾
已选择公共视图(AdapterView父视图、视图视图、整型位置、长id){
UserItem user=(UserItem)parent.getSelectedItem();
}
@凌驾
未选择公共无效(AdapterView父级){
}
});
}
} 
以下是xml文件:

<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context=".AdminEditor">

    <Spinner
        android:id="@+id/spinnerUser"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginTop="128dp"
        android:spinnerMode="dropdown"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toTopOf="parent" />

    <Button
        android:id="@+id/btnGetData"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginTop="28dp"
        android:text="Get Data"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintHorizontal_bias="0.498"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toBottomOf="@+id/spinnerUser" />

    <TextView
        android:id="@+id/txtTest"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toBottomOf="@+id/btnGetData" />

</androidx.constraintlayout.widget.ConstraintLayout>```

Thanks for your help


```
谢谢你的帮助

只要用户完全从Firebase接收到,就更新您的微调器,因此将对
UpdateSpiner()
的调用转移到
usersRef.get().addOnSuccessListener
中,并将其从
onCreate()
方法中删除

public void loadUsers() {
    usersRef.get()//Get entire users collection
            .addOnSuccessListener(new OnSuccessListener<QuerySnapshot>() {
                @Override
                public void onSuccess(QuerySnapshot queryDocumentSnapshots) {
                    for (QueryDocumentSnapshot documentSnapshot : queryDocumentSnapshots) {
                        users.add((UserItem)documentSnapshot.toObject(UserItem.class));//Add each user from the collection to the arraylist
                    }
                    updateSpinner();
                }
            });
public void loadUsers(){
usersRef.get()//获取整个用户集合
.addOnSuccessListener(新的OnSuccessListener(){
@凌驾
成功时公共无效(QuerySnapshot QueryDocumentSnapshot){
用于(QueryDocumentSnapshot文档快照:QueryDocumentSnapshot){
users.add((UserItem)documentSnapshot.toObject(UserItem.class));//将集合中的每个用户添加到arraylist
}
updateSpiner();
}
});

只要用户完全从Firebase接收到,就更新您的微调器,因此将对
UpdateSpiner()
的调用转移到
usersRef.get().addOnSuccessListener
中,并将其从
onCreate()
方法中删除

public void loadUsers() {
    usersRef.get()//Get entire users collection
            .addOnSuccessListener(new OnSuccessListener<QuerySnapshot>() {
                @Override
                public void onSuccess(QuerySnapshot queryDocumentSnapshots) {
                    for (QueryDocumentSnapshot documentSnapshot : queryDocumentSnapshots) {
                        users.add((UserItem)documentSnapshot.toObject(UserItem.class));//Add each user from the collection to the arraylist
                    }
                    updateSpinner();
                }
            });
public void loadUsers(){
usersRef.get()//获取整个用户集合
.addOnSuccessListener(新的OnSuccessListener(){
@凌驾
成功时公共无效(QuerySnapshot QueryDocumentSnapshot){
用于(QueryDocumentSnapshot文档快照:QueryDocumentSnapshot){
users.add((UserItem)documentSnapshot.toObject(UserItem.class));//将集合中的每个用户添加到arraylist
}
updateSpiner();
}
});

谢谢你的帮助,效果很好。真不敢相信我被困了2个小时。谢谢你的帮助,效果很好。真不敢相信我被困了2个小时。