Android 基于碎片的Firebase旋转器
我想使用firebase创建微调器,但当我运行并单击微调器时,应用程序出错,如下消息: java.lang.NullPointerException:尝试对空对象引用调用虚拟方法“java.lang.String java.lang.Object.toString()” 这是我的代码片段Android 基于碎片的Firebase旋转器,android,Android,我想使用firebase创建微调器,但当我运行并单击微调器时,应用程序出错,如下消息: java.lang.NullPointerException:尝试对空对象引用调用虚拟方法“java.lang.String java.lang.Object.toString()” 这是我的代码片段 spinner = view.findViewById(R.id.spinner); names = new ArrayList<>(); databaseRefe
spinner = view.findViewById(R.id.spinner);
names = new ArrayList<>();
databaseReference = FirebaseDatabase.getInstance().getReference();
databaseReference.child("spinners").addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(@NonNull DataSnapshot snapshot) {
for (DataSnapshot chilSnap:snapshot.getChildren()) {
String spinnerName = chilSnap.child("name").getValue(String.class);
names.add(spinnerName);
if (spinnerName!=null){
names.add(spinnerName);
}
}
ArrayAdapter<String> arrayAdapter= new ArrayAdapter<>(getActivity(), android.R.layout.simple_spinner_item, names);
arrayAdapter.setDropDownViewResource(android.R.layout.simple_dropdown_item_1line);
spinner.setAdapter(arrayAdapter);
}
@Override
public void onCancelled(@NonNull DatabaseError error) {
}
});
spinner=view.findviewbyd(R.id.spinner);
名称=新的ArrayList();
databaseReference=FirebaseDatabase.getInstance().getReference();
databaseReference.child(“微调器”).addValueEventListener(新的ValueEventListener(){
@凌驾
public void onDataChange(@NonNull DataSnapshot snapshot snapshot){
对于(DataSnapshot chilSnap:snapshot.getChildren()){
String spinnerName=chilSnap.child(“name”).getValue(String.class);
名称。添加(喷丝头名称);
if(喷丝头名称!=null){
名称。添加(喷丝头名称);
}
}
ArrayAdapter ArrayAdapter=新的ArrayAdapter(getActivity(),android.R.layout.simple\u微调器\u项,名称);
arrayAdapter.setDropDownViewResource(android.R.layout.simple\u dropdown\u item\u 1line);
spinner.setAdapter(阵列适配器);
}
@凌驾
已取消公共void(@NonNull DatabaseError){
}
});
检查
chilSnap.child("name")
可以为空,请添加一个复选框
String spinnerName = chilSnap.child("name")!= null ? chilSnap.child("name").getValue(String.class) :null;
并删除第一行名称。添加(喷丝头名称);在if块之外检查
可以为空,请添加一个复选框
String spinnerName = chilSnap.child("name")!= null ? chilSnap.child("name").getValue(String.class) :null;
并删除第一行名称。添加(喷丝头名称);在if块之外是否有一个特定的行,它指的是生成错误?是否有一个特定的行,它指的是生成错误