选定项目上的Android微调器不工作?

选定项目上的Android微调器不工作?,android,firebase,firebase-realtime-database,spinner,onitemselectedlistener,Android,Firebase,Firebase Realtime Database,Spinner,Onitemselectedlistener,所以伙计们,我正在尝试将OnItemSelectedListener实现到我的微调器。 数据从firebase中检索并添加到arraylist和我添加到adatper的数组列表中 //spinner stufff //variables: Spinner schoolNamesSpinner; DatabaseReference databaseReference; ArrayList<String> instituteNames; ArrayAda

所以伙计们,我正在尝试将OnItemSelectedListener实现到我的微调器。 数据从firebase中检索并添加到arraylist和我添加到adatper的数组列表中

//spinner stufff
//variables:

    Spinner schoolNamesSpinner;
    DatabaseReference databaseReference;
    ArrayList<String> instituteNames;
    ArrayAdapter<String> adapter;


        adapter = new ArrayAdapter<>(studentsLogIn.this,
                android.R.layout.simple_spinner_dropdown_item, instituteNames);

        schoolNamesSpinner.setAdapter(adapter);
        adapter.notifyDataSetChanged();

        **// populating selector;**

        populatingSelecto();
//微调器Stuff
//变量:
旋转器;旋转器;
数据库参考数据库参考;
ArrayList学院;
阵列适配器;
适配器=新阵列适配器(studentsLogIn.this,
android.R.layout.simple_微调器_下拉列表_项目,机构名称);
schoolNamesSpinner.setAdapter(适配器);
adapter.notifyDataSetChanged();
**//填充选择器**
填充selecto();
填充微调器

**//填充选择器**
私有void填充selecto(){
databaseReference.addValueEventListener(新的ValueEventListener(){
@凌驾
public void onDataChange(@NonNull DataSnapshot snapshot snapshot){
if(snapshot.exists()){
对于(DataSnapshot ID:snapshot.getChildren()){
add(ids.getKey());
}
对于(int i=0;i
因此,在所选项目上,我试图显示所选项目的文本,但它不起作用

    schoolNamesSpinner.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
        @Override
        public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {
            Toast.makeText(studentsLogIn.this, instituteNames.get(position), Toast.LENGTH_SHORT).show();
        }

        @Override
        public void onNothingSelected(AdapterView<?> parent) {

        }
    });
schoolNamesSpinner.setOnItemSelectedListener(新的AdapterView.OnItemSelectedListener(){
@凌驾
已选择公共视图(AdapterView父视图、视图视图、整型位置、长id){
Toast.makeText(studentsLogIn.this,instituteNames.get(position),Toast.LENGTH\u SHORT.show();
}
@凌驾
未选择公共无效(AdapterView父级){
}
});

您尚未初始化微调器:

    Spinner schoolNamesSpinner;
    DatabaseReference databaseReference;
    ArrayList<String> instituteNames;
    ArrayAdapter<String> adapter;
   schoolNamesSpinner=findViewById(R.id.your_spinner_id);//this line
   adapter = new ArrayAdapter<>(studentsLogIn.this,
   android.R.layout.simple_spinner_dropdown_item, instituteNames);

      schoolNamesSpinner.setAdapter(adapter);
      adapter.notifyDataSetChanged();

**// populating selector;**

     populatingSelecto();


   schoolNamesSpinner.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
    @Override
    public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {
        Toast.makeText(studentsLogIn.this, instituteNames.getItemAtPosition(position), Toast.LENGTH_SHORT).show();//use getItemAtPosition
    }

    @Override
    public void onNothingSelected(AdapterView<?> parent) {

    }
微调器;微调器;
数据库参考数据库参考;
ArrayList学院;
阵列适配器;
schoolnamespinner=findviewbyd(R.id.your\u spinner\u id)//这条线
适配器=新阵列适配器(studentsLogIn.this,
android.R.layout.simple_微调器_下拉列表_项目,机构名称);
schoolNamesSpinner.setAdapter(适配器);
adapter.notifyDataSetChanged();
**//填充选择器**
填充selecto();
schoolNamesSpinner.setOnItemSelectedListener(新的AdapterView.OnItemSelectedListener()){
@凌驾
已选择公共视图(AdapterView父视图、视图视图、整型位置、长id){
Toast.makeText(studentsLogIn.this,instituteNames.getItemAtPosition(position),Toast.LENGTH_SHORT).show();//使用getItemAtPosition
}
@凌驾
未选择公共无效(AdapterView父级){
}

我必须在添加内容后立即通知适配器

 for (int i = 0; i < uniqIds.size(); i++) {
            databaseReference.child(uniqIds.get(i)).addValueEventListener(new ValueEventListener() {
                @Override
                public void onDataChange(@NonNull DataSnapshot snapshot) {
                    if (snapshot.exists()) {
                        String name = snapshot.child("INSTITUTE").child("institutionName").getValue().toString();
                        instituteNames.add(name);
                        // here i have to add the adapter.notifydatachanged
                    }
                }
            }
        }
for(int i=0;i
schoolNamesSpinner=findViewById(R.id.spinner\u学生\u登录);//我确实初始化了它,但忘了粘贴代码检查我在Haallah中更新的答案这一次它会起作用。检查您的logcat是否单击了您的项目。使用onItemSelected中的Log.d函数检查您的项目是否被选中,即问题在于ast或选择本身。Bhai jaan当我从firebase检索数据时,它不起作用数据正在显示,但onitem选择器不起作用,因此我注释了填充选择器,并直接添加了一些内容以进行测试,如institutename.add(“A”)。然后项目选择器开始工作。我认为问题出在选择上。很高兴看到您找到了解决方案。
 for (int i = 0; i < uniqIds.size(); i++) {
            databaseReference.child(uniqIds.get(i)).addValueEventListener(new ValueEventListener() {
                @Override
                public void onDataChange(@NonNull DataSnapshot snapshot) {
                    if (snapshot.exists()) {
                        String name = snapshot.child("INSTITUTE").child("institutionName").getValue().toString();
                        instituteNames.add(name);
                        // here i have to add the adapter.notifydatachanged
                    }
                }
            }
        }