要将Spinner的值设置为Firebase实时数据库中的键,您可以按照以下步骤进行操作:
Spinner spinner = findViewById(R.id.spinner);
ArrayAdapter adapter = new ArrayAdapter<>(this, android.R.layout.simple_spinner_dropdown_item, options);
spinner.setAdapter(adapter);
DatabaseReference databaseRef = FirebaseDatabase.getInstance().getReference();
databaseRef.addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(@NonNull DataSnapshot dataSnapshot) {
// 获取数据库中的键值对
Map data = (Map) dataSnapshot.getValue();
// 更新Spinner的选中项
if (data != null) {
String selectedKey = ...; // 根据需求获取要选中的键
int selectedIndex = 0;
List keyList = new ArrayList<>(data.keySet());
for (int i = 0; i < keyList.size(); i++) {
if (keyList.get(i).equals(selectedKey)) {
selectedIndex = i;
break;
}
}
spinner.setSelection(selectedIndex);
}
}
@Override
public void onCancelled(@NonNull DatabaseError databaseError) {
// 处理错误
}
});
在上述代码中,您需要根据自己的需求来获取要选中的键。例如,您可以从数据库中获取一个键值对,然后根据某个条件来确定要选中的键。
spinner.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
@Override
public void onItemSelected(AdapterView> adapterView, View view, int position, long id) {
String selectedKey = ...; // 根据需求获取要更新的键
String selectedValue = spinner.getSelectedItem().toString();
// 更新Firebase数据库中的键值对
databaseRef.child(selectedKey).setValue(selectedValue);
}
@Override
public void onNothingSelected(AdapterView> adapterView) {
// 没有选中项时的处理
}
});
在上述代码中,您需要根据自己的需求来获取要更新的键。例如,您可以根据Spinner的选中项的位置来确定要更新的键。
请注意,上述代码只是一个示例,您需要根据自己的实际情况进行适当的修改。此外,您还需要确保您的Android应用已经正确配置了Firebase实时数据库。