2017-02-22 11 views
0

firebaseからリストビューにデータを取得しようとしていますが、アプリケーションをクラッシュさせるコードが1行あります。 mDatabase.addValueEventListener((com.google.firebase.database.ValueEventListener)リスナー);Firebaseがデータを取得中エラー

クラッシュレポートは、アンドロイドaddvalueeventlistener私はこの人をしてください解決する方法については考えているcom.google.firebase.database.ValueEventListener

にキャストすることはできませんされています

パッケージcom.example .moses.mcn;

import android.os.Bundle; 
import android.support.v7.app.AppCompatActivity; 
import android.widget.ArrayAdapter; 
import android.widget.ListView; 

import com.firebase.client.DataSnapshot; 
import com.firebase.client.FirebaseError; 
import com.firebase.client.ValueEventListener; 
import com.google.firebase.database.DatabaseError; 
import com.google.firebase.database.DatabaseReference; 
import com.google.firebase.database.FirebaseDatabase; 

import java.text.DateFormat; 
import java.util.ArrayList; 
import java.util.Map; 

public class Business extends AppCompatActivity { 
    private ListView business; 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_business); 
    } 

    public ArrayList<String> arr; 
    public ArrayAdapter adapter; 

    @Override 
    protected void onStart() { 
     super.onStart(); 

     DatabaseReference mDatabase = FirebaseDatabase.getInstance().getReference(); 
     arr = new ArrayList<>(); 

     ValueEventListener listener = new ValueEventListener() { 
      @Override 
      public void onDataChange(DataSnapshot dataSnapshot) { 

       map2list((Map) dataSnapshot.getValue()); 
       //formats the datasnapshot entries to strings 
       adapter.notifyDataSetChanged(); 
       //makes the ListView realtime 
      } 

      @Override 
      public void onCancelled(FirebaseError firebaseError) { 

      } 


      public void onCancelled(DatabaseError databaseError) { 
       // Getting Post failed, log a message 
       System.out.println(databaseError.toException()); 
       // ... 
      } 
     }; 
     mDatabase.addValueEventListener((com.google.firebase.database.ValueEventListener) listener); 

     adapter = new ArrayAdapter<String>(this, 
       android.R.layout.simple_list_item_1, android.R.id.text1, arr); 

     ListView listView = (ListView) findViewById(R.id.business); 
     listView.setAdapter(adapter); 


    } 

    public void map2list(Map<String,Long> map){ 

     arr.clear(); 
     for (Map.Entry<String, Long> entry : map.entrySet()) { 

      Long key = Long.parseLong(entry.getKey()); 
      String d = DateFormat.getDateTimeInstance().format(key); 
      Long value = entry.getValue(); 
      arr.add(d + ": " + value); 
     } 

    } 
} 
+0

から

import com.google.firebase.database.ValueEventListener 

へのインポートがあなたのbuild.gradleをご提示ください。現在のFirebaseデータベースライブラリとレガシーライブラリの両方を使用しているようですが、お互いに互換性がありません。 –

答えて

0

変更

import com.firebase.client.ValueEventListener 
+0

私のデータベースから何も表示されていないので、空白のページが表示されています。 –

関連する問題