0

私はRecyclerViewとfirebaseを使用したいので、私はrecyclerviewのfirebaseデータベースアダプタについてよく読んでいますが、ソースコードにエラーがあるかどうかはわかりません。コンパイルされません。誰も私にいくつかの提案を与えることができますか?recyclerviewとfirebaseはコンパイルできません

Move.java

public class Movie { 
private String name; 

public Movie(String name) { 
} 

public Movie(String name, String tel) { 
    this.name = name; 
// this.tel = tel; 

} 

public String getName() { 
    return name; 
} 

public void setName(String name) { 
    this.name = name; 
    } 

    } 

MoviesAdapter.java

public class MoviesAdapter extends RecyclerView.Adapter<MoviesAdapter.MyViewHolder> { 

private List<Movie> moviesList; 

public MoviesAdapter() { 

} 

public class MyViewHolder extends RecyclerView.ViewHolder { 
    public TextView title, year, genre; 

    public MyViewHolder(View view) { 
     super(view); 
     title = (TextView) view.findViewById(R.id.tv_name); 
    // genre = (TextView) view.findViewById(R.id.tv_phone); 

    } 
} 


public MoviesAdapter(List<Movie> moviesList) { 
    this.moviesList = moviesList; 
} 

@Override 
public MyViewHolder onCreateViewHolder(ViewGroup parent, int viewType) { 
    View itemView = LayoutInflater.from(parent.getContext()) 
      .inflate(R.layout.row, parent, false); 

    return new MyViewHolder(itemView); 
} 


@Override 
public void onBindViewHolder(MyViewHolder holder, int position) { 
    Movie movie = moviesList.get(position); 
    holder.title.setText(movie.getName()); 
    // holder.genre.setText(movie.getTel()); 
} 

@Override 
    public int getItemCount() { 
     return moviesList.size(); 
    } 
} 

MainActivity.java

public class MainActivity extends AppCompatActivity { 


private RecyclerView recyclerView; 
private List<String> movieList = new ArrayList<>(); 
private MoviesAdapter mAdapter; 

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_main); 
    recyclerView = (RecyclerView) findViewById(R.id.recycler); 
    mAdapter = new MoviesAdapter(); 
    RecyclerView.LayoutManager mLayoutManager = new LinearLayoutManager(getApplicationContext()); 
    recyclerView.setLayoutManager(mLayoutManager); 
    recyclerView.setItemAnimator(new DefaultItemAnimator()); 
    recyclerView.setAdapter(mAdapter); 

    DatabaseReference reference_contacts = FirebaseDatabase.getInstance().getReference("contacts"); 
    reference_contacts.addValueEventListener(new ValueEventListener() { 

     @Override 
     public void onDataChange(DataSnapshot dataSnapshot) { 
      movieList.clear(); 
      for (DataSnapshot ds : dataSnapshot.getChildren()){ 

       movieList.add(ds.child("name").getValue().toString()); 
       mAdapter.notifyDataSetChanged(); 
      } 
     } 

     @Override 
     public void onCancelled(DatabaseError databaseError) { 

     } 
    }); 
    } 


} 
+4

コンパイルエラーがあるの? firebaseとrecyclerviewの依存関係がない場合は、gradleファイルを表示してください –

+0

stacktraceを投稿 – mayosk

+0

エラーコードを追加して、適切な解決策を提示してください。モデルクラスのコードスニペットごとに、空のコンストラクタは定義しません。だから、引数のないコンストラクタが見つからないというエラーが出たら、最初に空のコンストラクタを定義してください。がんばろう!! –

答えて

0

人とも一緒にうまく動作します。それらの間に依存関係はありません。あなたの問題はおそらくあなたのgradleファイルから来ます。 どのようなエラーが表示されますか?

あなたのGradleファイルに最新buildToolsVersionを使用することを確認してください:

アンドロイド{ compileSdkVersion 25 buildToolsVersion "25.0.2"

defaultConfig { 
    applicationId "your.package.name" 
    minSdkVersion XX 
    targetSdkVersion 25 
} 

と次の依存関係を追加します。

compile 'com.android.support:recyclerview-v7:25.0.1' 
compile 'com.google.firebase:firebase-core:10.0.1' 

ルートグラデルファイルが最新の場合は、依存関係を確認してください:

dependencies { 
     classpath 'com.android.tools.build:gradle:2.2.3' 
     classpath 'com.google.gms:google-services:3.0.0' 
    } 

あなたがここにすべてを持っている:

https://firebase.google.com/docs/android/setup

関連する問題