Last active
June 7, 2018 03:06
-
-
Save ChaMinGyu/103452d214264b98ddee3bef1cf3be24 to your computer and use it in GitHub Desktop.
It is a recycling view adapter. You can specify the type of view You can bring different views and set them up. And by adding your defined interface listener You can specify listener events for each view.
This file contains hidden or 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
package your.project.package.name; | |
import android.content.Context; | |
import android.support.v7.widget.RecyclerView; | |
import android.view.LayoutInflater; | |
import android.view.View; | |
import android.view.ViewGroup; | |
import android.widget.Button; | |
import android.widget.TextView; | |
import java.util.ArrayList; | |
public class BaseTypeAdapter<T> extends RecyclerView.Adapter<BaseTypeAdapter.MyViewHolder> { | |
private Context context; | |
private ArrayList<T> ArrayList; | |
private RecyclerViewClickListener itemOnClickListener; | |
public BaseTypeAdapter(Context context, ArrayList<T> ArrayList, | |
RecyclerViewClickListener itemOnClickListener) { | |
this.context = context; | |
this.ArrayList = ArrayList; | |
this.itemOnClickListener = itemOnClickListener; | |
} | |
class MyViewHolder extends RecyclerView.ViewHolder { | |
TextView textView1; | |
Button delete_bt; | |
// add.. | |
MyViewHolder(View view) { | |
super(view); | |
textView1 = view.findViewById(R.id.textView1); | |
delete_bt = view.findViewById(R.id.delete_bt); | |
// add.. | |
} | |
void setText(String content) { | |
if (textView1 == null) return; | |
textView1.setText(content); | |
} | |
void setFileDeleteListener(View.OnClickListener deleteClickListener) { | |
if (delete_bt == null) return; | |
delete_bt.setOnClickListener(deleteClickListener); | |
} | |
} | |
@Override | |
public MyViewHolder onCreateViewHolder(ViewGroup parent, int viewType) { | |
int layout = -1; | |
switch (viewType) { | |
case T.TYPE1: | |
layout = R.layout.item_type1; | |
break; | |
case T.TYPE2: | |
layout = R.layout.item_type2; | |
break; | |
case T.TYPE3: | |
layout = R.layout.item_type3; | |
break; | |
} | |
View v = LayoutInflater.from(context).inflate(layout, parent, false); | |
return new MyViewHolder(v); | |
} | |
@Override | |
public void onBindViewHolder(final MyViewHolder myViewHolder, final int position) { | |
final int pos = myViewHolder.getAdapterPosition(); | |
if (pos == -1) { | |
return; | |
} | |
final T item = ArrayList.get(pos); | |
switch (item.getType()) { | |
case T.TYPE1: | |
myViewHolder.setText("This is a text view."); | |
myViewHolder.setFileDeleteListener(new View.OnClickListener() { | |
@Override | |
public void onClick(View v) { | |
int pos = myViewHolder.getAdapterPosition(); | |
if (pos == -1) { | |
return; | |
} | |
itemOnClickListener.recyclerViewItemDeleteClicked(v, pos); | |
} | |
}); | |
// item setting. | |
break; | |
case T.TYPE2: | |
// item setting. | |
break; | |
case T.TYPE3: | |
// item setting. | |
break; | |
} | |
} | |
@Override | |
public int getItemCount() { | |
return ArrayList.size(); | |
} | |
@Override | |
public int getItemViewType(int position) { | |
return ArrayList.get(position).getType(); | |
} | |
} |
This file contains hidden or 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
package your.project.package.name; | |
import android.view.View; | |
/** | |
* Created by chaming on 2017. 12. 21.. | |
*/ | |
public interface RecyclerViewClickListener { | |
void recyclerViewItemClicked(View v, int position); | |
void recyclerViewItemDeleteClicked(View v, int position); | |
void recyclerViewItemReviseClicked(View v, int position); | |
void recyclerViewSendBtnClicked(View v); | |
} | |
// |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment