Using Java

CategoryFragment.java
package project.oleo;

import android.os.Bundle;
import android.support.design.widget.Snackbar;
import android.support.v4.app.Fragment;
import android.support.v7.widget.LinearLayoutManager;
import android.support.v7.widget.RecyclerView;
import android.util.Log;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.TextView;

import com.bumptech.glide.Glide;
import com.firebase.ui.firestore.FirestoreRecyclerAdapter;
import com.firebase.ui.firestore.FirestoreRecyclerOptions;
import com.google.firebase.firestore.FirebaseFirestore;
import com.google.firebase.firestore.FirebaseFirestoreException;
import com.google.firebase.firestore.Query;

import butterknife.BindView;
import butterknife.ButterKnife;
import de.hdodenhof.circleimageview.CircleImageView;

/**
* Created by hp on 5/19/2018.
*/

public class CategoryFragment extends Fragment{
public CategoryFragment() {
// Required empty public constructor
}

@BindView(R.id.list_category)
RecyclerView friendList;

private FirebaseFirestore db;
private FirestoreRecyclerAdapter adapter;
LinearLayoutManager linearLayoutManager;

@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);

}

@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
// Inflate the layout for this fragment
View view = inflater.inflate(R.layout.fragment_category, container, false);

ButterKnife.bind(this, view);
init();
getFriendList();

return view;
}

private void init(){
linearLayoutManager = new LinearLayoutManager(getActivity().getApplicationContext(), LinearLayoutManager.VERTICAL, false);
friendList.setLayoutManager(linearLayoutManager);
db = FirebaseFirestore.getInstance();
}

private void getFriendList(){
Query query = db.collection(“category”);

FirestoreRecyclerOptions<CategoryRespons> response = new FirestoreRecyclerOptions.Builder<CategoryRespons>()
.setQuery(query, CategoryRespons.class)
.build();

adapter = new FirestoreRecyclerAdapter<CategoryRespons, CategoryHolder>(response) {
@Override
public void onBindViewHolder(CategoryHolder holder, int position, CategoryRespons model) {
holder.textName.setText(model.getNamaCategory());
// holder.textTitle.setText(model.getAlamatWisata());
Glide.with(getActivity().getApplicationContext())
.load(model.getFotoCategory())
.into(holder.imageCategory);

holder.itemView.setOnClickListener(v -> {
// Snackbar.make(friendList, model.getNamaCategory()+”, “+model.getAlamatWisata(), Snackbar.LENGTH_LONG)
Snackbar.make(friendList, model.getNamaCategory(), Snackbar.LENGTH_LONG)
.setAction(“Action”, null).show();
});
}

@Override
public CategoryHolder onCreateViewHolder(ViewGroup group, int i) {
View view = LayoutInflater.from(group.getContext())
.inflate(R.layout.format_list_category, group, false);

return new CategoryHolder(view);
}

@Override
public void onError(FirebaseFirestoreException e) {
Log.e(“error”, e.getMessage());
}
};

adapter.notifyDataSetChanged();
friendList.setAdapter(adapter);
}

public class CategoryHolder extends RecyclerView.ViewHolder {
@BindView(R.id.nama_category)
TextView textName;
@BindView(R.id.foto_category)
CircleImageView imageCategory;
// @BindView(R.id.background_category)
// TextView textTitle;
// RelativeLayout backgroundCategory;

public CategoryHolder(View itemView) {
super(itemView);
ButterKnife.bind(this, itemView);
}
}

@Override
public void onStart() {
super.onStart();
adapter.startListening();
}

@Override
public void onStop() {
super.onStop();
adapter.stopListening();
}

}

Leave a comment