Java数组中对象的访问字段

Java数组中对象的访问字段,java,android,firebase,android-arrayadapter,Java,Android,Firebase,Android Arrayadapter,我正在从Firebase检索一些数据,包括名称和id,我想将它们存储在一个数组中,然后仅使用名称值填充微调器 for (DataSnapshot snapshot : dataSnapshot.getChildren()) { People p = snapshot.getValue(People.class); peopleArray.add(new String[]{p.name, String.valueOf(

我正在从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);
for(DataSnapshot快照:DataSnapshot.getChildren()){
People p=snapshot.getValue(People.class);
添加(新字符串[]{p.name,String.valueOf(p.id)});
}
ArrayAdapter dataAdapter=新的ArrayAdapter(getApplicationContext(),android.R.layout.simple\u下拉列表\u项目\u 1行,(列表)peopleArray);
spinner.setAdapter(dataAdapter);
在ArrayAdapter中,我只想显示peopleArray中存储的名称。我如何才能做到这一点?

List people=new ArrayList();
   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());
    }
List peoplename=new ArrayList(); 为(人:人){ System.out.println(people.getName()); //在单独的列表中添加名称,然后指定给微调器。 添加(peoplename()); }
设置微调器

ArrayAdapter<String> dataAdapter = new ArrayAdapter<String>(getApplicationContext(), android.R.layout.simple_dropdown_item_1line, peoplename);
ArrayAdapter dataAdapter=新的ArrayAdapter(getApplicationContext(),android.R.layout.simple\u下拉列表\u item\u 1line,peopName);

试试这个!我希望这对你有帮助

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) {

        }
    });
ArrayAdapter dataAdapter=新的ArrayAdapter(getApplicationContext(),android.R.layout.simple\u下拉列表\u item\u 1line);
对于(DataSnapshot快照:DataSnapshot.getChildren()){
People p=snapshot.getValue(People.class);
//只是在以后使用的列表中添加id
peopleArray.add(String.valueOf(p.id));
//将每个名称添加到适配器
dataAdapter.add(p.name);
}
spinner.setAdapter(dataAdapter);
spinner.setOnItemSelectedListener(新的AdapterView.OnItemSelectedListener(){
@凌驾
已选择公共视图(AdapterView父视图、视图视图、整型位置、长id){
//选择项时从peopleArray获取pID
字符串pId=peopleArray.get(位置);
}
@凌驾
未选择公共无效(AdapterView父级){
}
});

为什么要添加字符串数组而不是字符串peopleArray.add(p.name);因为我以后需要访问我的id。单击微调器项时,可以从dataSnapShot对象获取id。我在数据对象中定义的id?是的,绝对id始终为0在for循环中添加打印语句,并检查获取的id。我的模型类中有错误。这是一个很大的帮助。谢谢