Last active
May 17, 2017 12:01
-
-
Save m-cakir/8d8c13e3e93a07ea84122a848e5e13f8 to your computer and use it in GitHub Desktop.
Android Base Classes
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
import android.os.Bundle; | |
import android.support.v4.app.Fragment; | |
import android.view.LayoutInflater; | |
import android.view.View; | |
import android.view.ViewGroup; | |
import butterknife.ButterKnife; | |
import butterknife.Unbinder; | |
public abstract class BaseFragment extends Fragment { | |
private Unbinder unbinder; | |
@Override | |
public View onCreateView(LayoutInflater inflater, ViewGroup container, | |
Bundle savedInstanceState) { | |
View view = inflater.inflate(getFragmentLayout(), container, false); | |
unbinder = ButterKnife.bind(this, view); | |
onBindView(view, savedInstanceState); | |
return view; | |
} | |
@Override | |
public void onDestroyView() { | |
super.onDestroyView(); | |
unbinder.unbind(); | |
} | |
public Unbinder getUnbinder() { | |
return unbinder; | |
} | |
abstract protected int getFragmentLayout(); | |
abstract protected void onBindView(View view, Bundle savedInstanceState); | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
import android.support.v7.widget.RecyclerView; | |
import android.view.LayoutInflater; | |
import android.view.View; | |
import android.view.ViewGroup; | |
import BaseRecyclerViewHolder; | |
import java.util.List; | |
public abstract class BaseAdapter<E, T extends BaseRecyclerViewHolder> extends RecyclerView.Adapter<T> { | |
private List<E> data; | |
public BaseAdapter(List<E> data) { | |
this.data = data; | |
} | |
@Override | |
public T onCreateViewHolder(ViewGroup parent, int viewType) { | |
View itemView = LayoutInflater.from(parent.getContext()) | |
.inflate(getLayout(), parent, false); | |
return getViewHolder(itemView); | |
} | |
@Override | |
public void onBindViewHolder(T holder, int position) { | |
holder.bindData(data.get(position)); | |
} | |
@Override | |
public int getItemCount() { | |
return data.size(); | |
} | |
abstract protected T getViewHolder(View view); | |
abstract protected int getLayout(); | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
import android.content.Context; | |
import android.support.annotation.NonNull; | |
import android.support.v7.widget.RecyclerView; | |
import android.view.View; | |
public abstract class BaseViewHolder<T> extends RecyclerView.ViewHolder{ | |
private final View view; | |
public BaseViewHolder(View view) { | |
super(view); | |
this.view = view; | |
} | |
abstract public void bindData(final T data); | |
protected @NonNull View view() { | |
return view; | |
} | |
protected @NonNull Context context() { | |
return view.getContext(); | |
} | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment