我正在尝试通过loadData方法从firebase加载数据:
private void loadData(int getTypeOfSelection) {
final TextView empty_view = (TextView) findViewById(R.id.empty_view);
mFirebaseDatabase = FirebaseDatabase.getInstance();
mMessagesDatabaseReference = mFirebaseDatabase.getReference().child("posts");
Query queryNothing = mMessagesDatabaseReference;
progressBar.setVisibility(View.VISIBLE);
empty_view.setVisibility(View.INVISIBLE);
//Nothing is entered
queryNothing.addListenerForSingleValueEvent(new ValueEventListener() {
@Override
public void onDataChange(@NonNull DataSnapshot dataSnapshot) {
if (dataSnapshot.exists()) {
for (DataSnapshot d : dataSnapshot.getChildren()) {
// Get the value from the DataSnapshot and add it to the item list
post itemObject = dataSnapshot.getValue(post.class);
//this is where data from database is entered into a list of objects
if (dataSnapshot.getChildrenCount() > 0 && Float.parseFloat(itemObject.getminPack()) >= sal_ary) {
//all fields are empty
if (fie_ld.isEmpty() && loc_ation.isEmpty() && com_pany.isEmpty()) {
itemList.add(itemObject);
flag = 1;
}
//if location is entered
if (fie_ld.isEmpty() && !loc_ation.isEmpty() && com_pany.isEmpty()) {
if (itemObject.getLocation().equals(loc_ation.toLowerCase().trim())) {
itemList.add(itemObject);
flag = 2;
}
}
//Company is entered
if (fie_ld.isEmpty() && loc_ation.isEmpty() && !com_pany.isEmpty()) {
if (itemObject.getCompany().contains(com_pany.trim())) {
itemList.add(itemObject);
flag = 3;
}
}
//Location and company are entered
if (fie_ld.isEmpty() && !loc_ation.isEmpty() && !com_pany.isEmpty()) {
if (itemObject.getLocation().equals(loc_ation.toLowerCase().trim()) && itemObject.getCompany().contains(com_pany.trim())) {
itemList.add(itemObject);
flag = 4;
}
}
//Field is entered
if (!fie_ld.isEmpty() && loc_ation.isEmpty() && com_pany.isEmpty()) {
if (itemObject.getField().equals(fie_ld.trim())) {
itemList.add(itemObject);
flag = 5;
}
}
//Field and Location are entered
if (!fie_ld.isEmpty() && !loc_ation.isEmpty() && com_pany.isEmpty()) {
if (itemObject.getField().equals(fie_ld.trim()) && itemObject.getLocation().equals(loc_ation.toLowerCase().trim())) {
itemList.add(itemObject);
flag = 6;
}
}
//Field and Company are entered
if (!fie_ld.isEmpty() && loc_ation.isEmpty() && !com_pany.isEmpty()) {
if (itemObject.getField().equals(fie_ld.trim()) && itemObject.getCompany().contains(com_pany.trim())) {
itemList.add(itemObject);
flag = 7;
}
}
//If all three are entered
if (!fie_ld.isEmpty() && !loc_ation.isEmpty() && !com_pany.isEmpty()) {
if (itemObject.getField().equals(fie_ld.trim()) && itemObject.getLocation().equals(loc_ation.toLowerCase().trim()) && itemObject.getCompany().contains(com_pany.trim())) {
itemList.add(itemObject);
flag = 8;
}
}
if (flag == 0) {
mListView.setVisibility(View.GONE);
empty_view.setVisibility(View.VISIBLE);
progressBar.setVisibility(View.GONE);
}
mListView.setAdapter(new postAdapter(MainActivity.this, itemList));
totalChild = dataSnapshot.getChildrenCount();
progressBar.setVisibility(View.GONE);
}
else {
mListView.setVisibility(View.GONE);
empty_view.setVisibility(View.VISIBLE);
progressBar.setVisibility(View.GONE);
}
}
} else {
Toast.makeText(MainActivity.this, "Database empty", Toast.LENGTH_SHORT).show();
}
}
@Override
public void onCancelled(@NonNull DatabaseError databaseError) {
}
});
}
这是警告:
运行时出现错误:
E/AndroidRuntime: FATAL EXCEPTION: main
Process: com.referral.abhin.myapplication, PID: 11648
java.lang.NullPointerException: Attempt to invoke virtual method 'java.lang.String java.lang.String.trim()' on a null object reference
at sun.misc.FloatingDecimal.readJavaFormatString(FloatingDecimal.java:1838)
at sun.misc.FloatingDecimal.parseFloat(FloatingDecimal.java:122)
at java.lang.Float.parseFloat(Float.java:452)
at com.referral.abhin.myapplication.MainActivity$5.onDataChange(MainActivity.java:382)
at com.google.firebase.database.zzp.onDataChange(Unknown Source:7)
at com.google.android.gms.internal.firebase_database.zzfc.zza(Unknown Source:13)
at com.google.android.gms.internal.firebase_database.zzgx.zzdr(Unknown Source:2)
at com.google.android.gms.internal.firebase_database.zzhd.run(Unknown Source:71)
at android.os.Handler.handleCallback(Handler.java:790)
at android.os.Handler.dispatchMessage(Handler.java:99)
at android.os.Looper.loop(Looper.java:192)
at android.app.ActivityThread.main(ActivityThread.java:6671)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:438)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:818)
数据库:
我该怎么做才能克服此错误?