Java数组中对象的访问字段
我正在从Firebase检索一些数据,包括名称和id,我想将它们存储在一个数组中,然后仅使用名称值填充微调器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(
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。我的模型类中有错误。这是一个很大的帮助。谢谢