2017-05-01 31 views
0

私は検索しましたが、答えを得ることができませんでした。私は火災基地データベースを持っています。私はすべてのデータを取得してlistviewに表示しています。このため私はaddValueEventListenerを使用していますが、事実はOnDataChangeは実行されず、結果はnullですArrayList NullPointerエラー。誰かが私を助けることができれば、それは感謝されるだろう。前もって感謝します! enter image description hereデータの取得中にOnDataChangeが実行されない


RecipesDisplay:

ListView list; 
DatabaseReference mDatabaseRef; 
FirebaseDatabase mRef; 
String[]t; 
int[] im; 
ArrayList<Recipe> recipes = null; 

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_user_recipes_display); 
    list = (ListView) findViewById(R.id.listview); 
    final FirebaseDatabase database = FirebaseDatabase.getInstance(); 
    mDatabaseRef = database.getReference("https://fir-practice- 
    41da3.firebaseio.com/New Recipes/"); 

    mDatabaseRef.addValueEventListener(new ValueEventListener() { 
     @Override 
     public void onDataChange(DataSnapshot dataSnapshot) { 
      recipes = new ArrayList<>(); 
      for (DataSnapshot msgSnapshot : dataSnapshot.getChildren()) { 
       Recipe msg = msgSnapshot.getValue(Recipe.class); 
       recipes.add(msg); 
       Toast.makeText(getApplicationContext(),"LD 
    !!!",Toast.LENGTH_LONG).show(); 
      } 
     } 

      @Override 
      public void onCancelled (DatabaseError databaseError){ 
       Toast.makeText(getApplicationContext(),"FAILD 
     !!!",Toast.LENGTH_LONG).show(); 
      } 

    }); 
    for (int i =0;i<recipes.size();i++){ 
     t[i] = recipes.get(i).getTitle(); 
     im[i] = R.drawable.breakfast_1; 
    } 

    CustomAdapterCategory adapter = new CustomAdapterCategory(this,t,im); 
    list.setAdapter(adapter); 

    } 

} 

Build.Gradle(アプリ):

 dependencies { 
     compile fileTree(dir: 'libs', include: ['*.jar']) 
     compile 'com.android.support:appcompat-v7:25.1.1' 
     compile 'com.android.support:design:25.1.1' 
     compile 'de.hdodenhof:circleimageview:2.1.0' 
     compile 'com.google.firebase:firebase-core:10.2.0' 
     compile 'com.google.firebase:firebase-auth:10.2.0' 
     compile 'com.google.firebase:firebase-database:10.2.0' 
     compile 'com.android.support.constraint:constraint-layout:1.0.2' 
     testCompile 'junit:junit:4.12' 
    } 
    apply plugin: 'com.google.gms.google-services' 

答えて

0

あなたは、コードにエラーがないことを確認している場合は、私が希望Firebaseの接続が非同期であることを通知します。 for (int i =0;i<recipes.size();i++){ t[i] = recipes.get(i).getTitle(); im[i] = R.drawable.breakfast_1; } adapter.notifyDataSetChanged(); forループの後に上記のコードをonDataChange()に入れてください。

関連する問題