}
}
2、entity类
public class TestEntity implements Serializable, MultiItemEntity {
private String title;
private String https;
private String ones;
private boolean ifshow;
private int itemType;
public static final int style_0 = 0;
public static final int style_1 = 1;
public static final int style_2 = 2;//重要参数
public String getOnes() {
return ones;
}
public void setOnes(String ones) {
this.ones = ones;
}
public int getItemType() {
return itemType;
}
public void setItemType(int itemType) {
this.itemType = itemType;
}
public boolean isIfshow() {
return ifshow;
}
public void setIfshow(boolean ifshow) {
this.ifshow = ifshow;
}
public String getTitle() {
return title;
}
public void setTitle(String title) {
this.title = title;
}
public String getHttps() {
return https;
}
public void setHttps(String https) {
this.https = https;
}
}
public class ShareRecylerViewAdapter extends RecyclerView.Adapter<RecyclerView.ViewHolder> implements Handler.Callback{
private List listEntity;
private Context context;
private LayoutInflater inflater;
private ListOnItemListener onItemListener;
private ShotOnClickListener onShotListener;
private Handler handler;
public void setOnItemListener(ListOnItemListener onItemListener){
this.onItemListener = onItemListener;
}
public void setOnShotListener(ShotOnClickListener onShotListener){
this.onShotListener = onShotListener;
}
public ShareRecylerViewAdapter(Context context, List entitys) {
this.context = context;
this.listEntity = entitys;
inflater =LayoutInflater.from(context);
handler = new Handler(Looper.getMainLooper(), this);
}
@Override
public int getItemViewType(int position) {//item类型方法
if (listEntity.get(position).getType() == SharePlatformType.DIRECT_SHARE_PLAT) {
return SharePlatformType.DIRECT_SHARE_PLAT;
} else if (listEntity.get(position).getType() == SharePlatformType.TITLE_SHARE_PLAT) {
return SharePlatformType.TITLE_SHARE_PLAT;
} else {
return SharePlatformType.FOREIGN_SHARE_PLAT;
}
}
@Override
public RecyclerView.ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {//itemlayout加载
final View view;
if (viewType == SharePlatformType.DIRECT_SHARE_PLAT) {
view = inflater.inflate(R.layout.layout_share_yanshi_item,parent,false);
return new ShareViewHolder(view);//绑定数据
} else if (viewType == SharePlatformType.TITLE_SHARE_PLAT) {
view = inflater.inflate(R.layout.share_title_content,parent,false);
return new ShareViewHolderTitle(view);
} else {
view = inflater.inflate(R.layout.share_content_text,parent,false);
return new ShareViewHolderContext(view);
}
}
@Override
public void onBindViewHolder(RecyclerView.ViewHolder holder, int position) {//绑定事件
if(holder instanceof ShareViewHolderTitle){
ShareViewHolderTitle viewHolderTitle = (ShareViewHolderTitle)holder;
viewHolderTitle.setData(position);
}
if(holder instanceof ShareViewHolder){
ShareViewHolder shareViewHolder = (ShareViewHolder)holder;
shareViewHolder.shareSelected.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
// onOneKeyShare();
}
});
shareViewHolder.shotSelected.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
onShotListener.onClick();
}
});
shareViewHolder.sharkSelected.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
onShotListener.onSharkClick();
}
});
}
if(holder instanceof ShareViewHolderContext){
final ShareViewHolderContext viewHolderContext = (ShareViewHolderContext)holder;
viewHolderContext.setData(position);
viewHolderContext.layout.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
onItemListener.onClick(viewHolderContext.itemView,viewHolderContext.getLayoutPosition());
}
});
}
}
private void showToast(String text){
Toast.makeText(context, text, Toast.LENGTH_SHORT).show();
}
@Override
public int getItemCount() {
return listEntity.size();
}
@Override
public boolean handleMessage(Message msg) {
String toastMsg = (String) msg.obj;
showToast(toastMsg);
return false;
}
class ShareViewHolder extends RecyclerView.ViewHolder {
public ImageView shareSelected;
public ImageView shotSelected;
public ImageView sharkSelected;
public ShareViewHolder(View itemView) {
super(itemView);
shareSelected =(ImageView) itemView.findViewById(R.id.mSelected);
shotSelected = (ImageView) itemView.findViewById(R.id.mShot);
sharkSelected = (ImageView) itemView.findViewById(R.id.mShark);
}
}
class ShareViewHolderTitle extends RecyclerView.ViewHolder {
public TextView textView;
public ShareViewHolderTitle(View itemView) {
super(itemView);
textView =(TextView) itemView.findViewById(R.id.titleTxt);
}
public void setData(int position){
textView.setText(listEntity.get(position).getName());
}
}
class ShareViewHolderContext extends RecyclerView.ViewHolder {
public ImageView icon;
public TextView name;
public RelativeLayout layout;
public ShareViewHolderContext(View itemView) {
super(itemView);
icon = (ImageView)itemView.findViewById(R.id.mIcon);
name = (TextView)itemView.findViewById(R.id.mTitle);
layout = (RelativeLayout) itemView.findViewById(R.id.onMainLayout);
}
public void setData(int postion){
name.setText(listEntity.get(postion).getName());
icon.setImageResource(listEntity.get(postion).getIcon());
}
}
public interface ListOnItemListener{
public void onClick(View view,int position);
}
public interface ShotOnClickListener{
public void onClick();
public void onSharkClick();
}
}
3、MainActivity调用recycleview
初始化
private List testEntities = new ArrayList<>();
private RecyclerView recyclerView;
private NewsAdapter mNewsAdapter;
recyclerView = (RecyclerView)findViewById(R.id.myrecyclerview);
mNewsAdapter = new NewsAdapter(testEntities);
mNewsAdapter.setOnItemClickListener(new BaseQuickAdapter.OnItemClickListener() {
@Override
public void onItemClick(BaseQuickAdapter adapter, View view, int position) {
Toast.makeText(MainActivity.this,position+“nnnn”,Toast.LENGTH_LONG).show();
}
});
recyclerView.setAdapter(mNewsAdapter);
赋值
for (int i=0;i<29;i++){
TestEntity testEntity = new TestEntity();
if (i%4==0&&i!=0){
testEntity.setItemType(2);
}else {
testEntity.setItemType(1);
}
if (i==0){
testEntity.setItemType(0);
testEntity.setHttps(“baidu.com”);
testEntity.setTitle(“百度。com”);
testEntity.setOnes(“头部”);
}
if (i==28){
testEntity.setItemType(0);
testEntity.setHttps(“baidu.com”);
testEntity.setTitle(“百度。com”);
testEntity.setOnes(“尾部”);
}
testEntity.setHttps(“baidu.com”);
testEntity.setTitle(“百度。com”);
testEntities.add(testEntity);
if (i==28){
// newgroupsAdapter.notifyDataSetChanged();
mNewsAdapter.notifyLoadMoreToLoading();
}
}
头部与尾部item_add_groups_number.xml
<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android=“http://schemas.android.com/apk/res/android”
xmlns:melove=“http://schemas.android.com/apk/res-auto”
android:orientation=“vertical”
android:layout_width=“wrap_content”
android:layout_height=“wrap_content”>
<RelativeLayout
android:id=“@+id/item_company_member_layout”
android:layout_width=“match_parent”
android:layout_height=“90dp”
<ImageView
android:id=“@+id/item_information_choose_image”
android:layout_width=“15dp”
android:layout_height=“15dp”
android:layout_alignParentRight=“true”
android:layout_marginRight=“12dp”
android:src=“@drawable/ic_launcher_background”
android:visibility=“invisible”/>
<ImageView
android:id=“@+id/item_company_member_head_image”
android:layout_width=“44dp”
android:layout_height=“44dp”
android:layout_below=“@+id/item_information_choose_image”
android:layout_centerHorizontal=“true”
android:scaleType=“centerCrop”
android:visibility=“gone”
android:src=“@drawable/ic_launcher_background”
/>
<TextView
android:id=“@+id/item_company_member_name”
android:layout_width=“match_parent”
android:layout_height=“match_parent”
android:layout_marginTop=“8dp”
android:layout_below=“@+id/item_company_member_head_image”
android:background=“@color/colorPrimary”
android:layout_centerHorizontal=“true”
android:text=“林晓”
android:gravity=“center”
android:textSize=“18sp”/>
混合1 item_news_1.xml
<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android=“http://schemas.android.com/apk/res/android”
xmlns:melove=“http://schemas.android.com/apk/res-auto”
xmlns:app=“http://schemas.android.com/apk/res-auto”
android:id=“@+id/holder_reward_layout”
android:layout_width=“match_parent”
android:layout_height=“98dp”
android:orientation=“vertical”>
题外话
我在一线互联网企业工作十余年里,指导过不少同行后辈。帮助很多人得到了学习和成长。
我意识到有很多经验和知识值得分享给大家,也可以通过我们的能力和经验解答大家在IT学习中的很多困惑,所以在工作繁忙的情况下还是坚持各种整理和分享。但苦于知识传播途径有限,很多程序员朋友无法获得正确的资料得到学习提升,故此将并将重要的Android进阶资料包括自定义view、性能优化、MVC与MVP与MVVM三大框架的区别、NDK技术、阿里面试题精编汇总、常见源码分析等学习资料。
【Android思维脑图(技能树)】
知识不体系?这里还有整理出来的Android进阶学习的思维脑图,给大家参考一个方向。
希望我能够用我的力量帮助更多迷茫、困惑的朋友们,帮助大家在IT道路上学习和发展~
网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。
一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!
round=“?attr/selectableItemBackground”–>
题外话
我在一线互联网企业工作十余年里,指导过不少同行后辈。帮助很多人得到了学习和成长。
我意识到有很多经验和知识值得分享给大家,也可以通过我们的能力和经验解答大家在IT学习中的很多困惑,所以在工作繁忙的情况下还是坚持各种整理和分享。但苦于知识传播途径有限,很多程序员朋友无法获得正确的资料得到学习提升,故此将并将重要的Android进阶资料包括自定义view、性能优化、MVC与MVP与MVVM三大框架的区别、NDK技术、阿里面试题精编汇总、常见源码分析等学习资料。
【Android思维脑图(技能树)】
知识不体系?这里还有整理出来的Android进阶学习的思维脑图,给大家参考一个方向。
[外链图片转存中…(img-kt5BDF5i-1714288633335)]
希望我能够用我的力量帮助更多迷茫、困惑的朋友们,帮助大家在IT道路上学习和发展~
网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。
一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!