访问数组中对象的字段 Java

Access fields of an object in an array Java

我正在从 Firebase 中检索一些数据,包括名称和 ID,我想将其存储在一个数组中,然后仅使用名称值填充微调器。

for (DataSnapshot snapshot : dataSnapshot.getChildren()) {
                    People p = snapshot.getValue(People.class);
                    peopleArray.add(new String[]{p.name, String.valueOf(p.id)});
                }

                ArrayAdapter<String> dataAdapter = new ArrayAdapter<String>(getApplicationContext(), android.R.layout.simple_dropdown_item_1line, (List<String>) peopleArray);
                spinner.setAdapter(dataAdapter);

在 ArrayAdapter 中,我只想显示存储在 peopleArray 中的名称。我该怎么做?

   List<People > people = new ArrayList<>();  
   List<String> peoplename = new ArrayList<>();       
   for(People people : people) {
        System.out.println(people.getName());
       // add name in separate list then assign to spinner.
       peoplename.add(people.getName());
    }

设置微调器

ArrayAdapter<String> dataAdapter = new ArrayAdapter<String>(getApplicationContext(), android.R.layout.simple_dropdown_item_1line, peoplename);

试试这个!希望对您有所帮助

ArrayAdapter<String> dataAdapter = new ArrayAdapter<String>(getApplicationContext(), android.R.layout.simple_dropdown_item_1line);

    for (DataSnapshot snapshot : dataSnapshot.getChildren()) {
        People p = snapshot.getValue(People.class);

        //just adding id in list use later
        peopleArray.add(String.valueOf(p.id));

        //adding each name to your adapter
        dataAdapter.add(p.name);
    }


    spinner.setAdapter(dataAdapter);
    spinner.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
        @Override
        public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {
            // get pID from peopleArray when item is selected 
            String pId = peopleArray.get(position);
        }

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

        }
    });