I was trying to modify my old FirebaseAdapter code into new Adapter but i couldnt figure out how the new FirebaseAdapter is used using FirebaseOptions and Query. So i tried the same old way and modified the code but it is now showing this error
Program type already present:
android.support.design.widget.CoordinatorLayout$Behavior
Message{kind=ERROR, text=Program type already present:
android.support.design.widget.CoordinatorLayout$Behavior, sources=[Unknown
source file], tool name=Optional.of(D8)}
my new code for the adapter is
public class OpeningPage extends Fragment {
public OpeningPage() {
// Required empty public constructor
}
private RecyclerView mUsersList;
private DatabaseReference mUsersDatabase;
private LinearLayoutManager mLayoutManager;
private View mMainView;
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
// Inflate the layout for this fragment
// View view= inflater.inflate(R.layout.fragment_opening_page,
container, false);
mMainView = inflater.inflate(R.layout.fragment_chats, container, false);
mUsersDatabase =
FirebaseDatabase.getInstance().getReference().child("Users");
mLayoutManager = new LinearLayoutManager(getContext());
mUsersList = (RecyclerView) mMainView.findViewById(R.id.users_list);
mUsersList.setHasFixedSize(true);
mUsersList.setLayoutManager(mLayoutManager);
return mMainView;
}
@Override
public void onStart() {
super.onStart();
Query query = FirebaseDatabase.getInstance()
.getReference()
.child("Users")
.limitToLast(50);
FirebaseRecyclerOptions<Users> options =
new FirebaseRecyclerOptions.Builder<Users>()
.setQuery(query, Users.class)
.build();
FirebaseRecyclerAdapter adapter = new FirebaseRecyclerAdapter<Users,
UsersViewHolder>(options) {
@Override
protected void onBindViewHolder(UsersViewHolder holder, int
position, Users model) {
holder.setDisplayName(model.getName());
holder.setUserStatus(model.getStatus());
holder.setUserImage(model.getThumb_image(), getContext());
final String user_id = getRef(position).getKey();
holder.mView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Intent profileIntent = new Intent(getActivity(),
ProfileActivity.class);
profileIntent.putExtra("user_id", user_id);
startActivity(profileIntent);
}
});
}
@Override
public UsersViewHolder onCreateViewHolder(ViewGroup parent, int
viewType) {
View view = LayoutInflater.from(parent.getContext())
.inflate(R.layout.users_single_layout, parent, false);
return new UsersViewHolder(view);
}
};
mUsersList.setAdapter(adapter);
}
public static class UsersViewHolder extends RecyclerView.ViewHolder {
View mView;
public UsersViewHolder(View itemView) {
super(itemView);
mView = itemView;
}
public void setDisplayName(String name){
TextView userNameView = (TextView)
mView.findViewById(R.id.user_single_name);
userNameView.setText(name);
}
public void setUserStatus(String status){
TextView userStatusView = (TextView)
mView.findViewById(R.id.user_single_status);
userStatusView.setText(status);
}
public void setUserImage(String thumb_image, Context ctx){
CircleImageView userImageView = (CircleImageView)
mView.findViewById(R.id.user_single_image);
Picasso.with(ctx).load(thumb_image).placeholder(R.drawable.default_avatar)
.into( userImageView);
}
}
}
Earlier i was using PopulateViewHolder but after upgrading my gradle to implementation 'com.firebaseui:firebase-ui-database:3.0.0' its no longer working. Thanks in advance