如何在填充了来自 FireBase 数据库的数据的 Spinner 小部件中添加提示?
How to add Hint in Spinner widget populated with data from FireBase Database?
我的 xml 代码是:
<Spinner
android:id="@+id/destination"
android:layout_width="344dp"
android:layout_height="30dp"
android:autofillHints="Choose destination"
android:spinnerMode="dropdown" />
我想添加提示(不使用虚拟条目)以在 activity 启动时向用户显示。
使用 FireBase 后,内置 xml 提示功能无法正常工作。
主要活动:
myRef.child("Stations").addListenerForSingleValueEvent(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
final List<String> stationname = new ArrayList<String>();
for (DataSnapshot stationSnapshot : dataSnapshot.getChildren()) {
String stationName = stationSnapshot.child("Name").getValue(String.class);
stationname.add(stationName);
}
Spinner sp2= findViewById(R.id.destination);
ArrayAdapter<String> arrayAdapter = new ArrayAdapter<String>(FairPage.this, android.R.layout.simple_spinner_item, stationname);
arrayAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
sp2.setAdapter(arrayAdapter);
在设置来自 firebase 的数据之前,只需在数组列表中添加一项。完成 -
stationname.add("Select Station"); // hint
myRef.child("Stations").addListenerForSingleValueEvent(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
final List<String> stationname = new ArrayList<String>();
for (DataSnapshot stationSnapshot : dataSnapshot.getChildren()) {
String stationName = stationSnapshot.child("Name").getValue(String.class);
stationname.add(stationName);
}
Spinner sp2= findViewById(R.id.destination);
ArrayAdapter<String> arrayAdapter = new ArrayAdapter<String>(FairPage.this, android.R.layout.simple_spinner_item, stationname);
arrayAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
sp2.setAdapter(arrayAdapter);
试试这个
myRef.child("Stations").addListenerForSingleValueEvent(new
ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
final List<String> stationname = new ArrayList<String>();
stationname.add("Select Station");
for (DataSnapshot stationSnapshot : dataSnapshot.getChildren()) {
String stationName = stationSnapshot.child("Name").getValue(String.class);
stationname.add(stationName);
}
Spinner sp2= findViewById(R.id.destination);
ArrayAdapter<String> arrayAdapter = new ArrayAdapter<String>(FairPage.this, android.R.layout.simple_spinner_item, stationname);
arrayAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
sp2.setAdapter(arrayAdapter);
并检查微调项何时被选中
if (stationname.get(postion).equals("Select Station"){
//Toast please select station
}
我的 xml 代码是:
<Spinner
android:id="@+id/destination"
android:layout_width="344dp"
android:layout_height="30dp"
android:autofillHints="Choose destination"
android:spinnerMode="dropdown" />
我想添加提示(不使用虚拟条目)以在 activity 启动时向用户显示。 使用 FireBase 后,内置 xml 提示功能无法正常工作。
主要活动:
myRef.child("Stations").addListenerForSingleValueEvent(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
final List<String> stationname = new ArrayList<String>();
for (DataSnapshot stationSnapshot : dataSnapshot.getChildren()) {
String stationName = stationSnapshot.child("Name").getValue(String.class);
stationname.add(stationName);
}
Spinner sp2= findViewById(R.id.destination);
ArrayAdapter<String> arrayAdapter = new ArrayAdapter<String>(FairPage.this, android.R.layout.simple_spinner_item, stationname);
arrayAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
sp2.setAdapter(arrayAdapter);
在设置来自 firebase 的数据之前,只需在数组列表中添加一项。完成 -
stationname.add("Select Station"); // hint
myRef.child("Stations").addListenerForSingleValueEvent(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
final List<String> stationname = new ArrayList<String>();
for (DataSnapshot stationSnapshot : dataSnapshot.getChildren()) {
String stationName = stationSnapshot.child("Name").getValue(String.class);
stationname.add(stationName);
}
Spinner sp2= findViewById(R.id.destination);
ArrayAdapter<String> arrayAdapter = new ArrayAdapter<String>(FairPage.this, android.R.layout.simple_spinner_item, stationname);
arrayAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
sp2.setAdapter(arrayAdapter);
试试这个
myRef.child("Stations").addListenerForSingleValueEvent(new
ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
final List<String> stationname = new ArrayList<String>();
stationname.add("Select Station");
for (DataSnapshot stationSnapshot : dataSnapshot.getChildren()) {
String stationName = stationSnapshot.child("Name").getValue(String.class);
stationname.add(stationName);
}
Spinner sp2= findViewById(R.id.destination);
ArrayAdapter<String> arrayAdapter = new ArrayAdapter<String>(FairPage.this, android.R.layout.simple_spinner_item, stationname);
arrayAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
sp2.setAdapter(arrayAdapter);
并检查微调项何时被选中
if (stationname.get(postion).equals("Select Station"){
//Toast please select station
}