recyclerview和firebase无法编译

时间:2017-02-06 14:50:39

标签: android firebase android-recyclerview firebase-realtime-database

因为我想使用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) {

        }
    });
    }


}

1 个答案:

答案 0 :(得分:0)

他们俩一起工作得很好。他们之间没有依赖关系。您的问题可能来自您的gradle文件。 你得到了什么样的错误?

请确保在您的gradle文件中使用最新的buildToolsVersion:

android {     compileSdkVersion 25     buildToolsVersion&#34; 25.0.2&#34;

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'

如果您的根gradle文件是最新的,请确保依赖项:

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