package cn.mutils.app.demo.ui; import android.content.Context; import android.support.v7.widget.LinearLayoutManager; import android.support.v7.widget.RecyclerView; import android.util.AttributeSet; import android.view.View; import android.widget.TextView; import java.util.ArrayList; import cn.mutils.app.demo.R; import cn.mutils.app.ui.StateView; import cn.mutils.app.ui.adapter.IItemView; import cn.mutils.app.ui.adapter.ItemView; import cn.mutils.app.ui.adapter.RecyclerAdapter; import cn.mutils.core.annotation.event.Click; import cn.mutils.core.annotation.res.FindViewById; import cn.mutils.core.annotation.res.SetContentView; @SetContentView(R.layout.view_recycler_adapter) public class RecyclerAdapterDemoView extends StateView { @FindViewById(R.id.recycler_view) protected RecyclerView mRecyclerView; protected MyAdapter mAdapter; public RecyclerAdapterDemoView(Context context) { super(context); } public RecyclerAdapterDemoView(Context context, AttributeSet attrs, int defStyle) { super(context, attrs, defStyle); } public RecyclerAdapterDemoView(Context context, AttributeSet attrs) { super(context, attrs); } @Override public void onCreate() { super.onCreate(); mRecyclerView.setLayoutManager(new LinearLayoutManager(getContext())); mAdapter = new MyAdapter(); ArrayList<MyItem> dataProvider = new ArrayList<MyItem>(); for (int i = 0; i < 5; i++) { MyItem item = new MyItem(); item.setTitle("No. " + (i + 1)); item.setContent("Content for item " + (i + 1)); dataProvider.add(item); } mAdapter.setDataProvider(dataProvider); mRecyclerView.setAdapter(mAdapter); } static class MyItem { protected String mTitle; protected String mContent; public String getTitle() { return mTitle; } public void setTitle(String title) { mTitle = title; } public String getContent() { return mContent; } public void setContent(String content) { mContent = content; } } class MyAdapter extends RecyclerAdapter<MyItem> { @Override public IItemView<MyItem> getItemView(int itemViewType) { return new MyItemView(getContext()); } } @SetContentView(R.layout.view_my_item_view) class MyItemView extends ItemView<MyItem> { @FindViewById(R.id.title) protected TextView mTitleText; @FindViewById(R.id.content) protected TextView mConentText; @FindViewById(R.id.line) protected View mLineView; public MyItemView(Context context) { super(context); } @Override public void onResume() { if (mPosition == mAdapter.getCount() - 1) { mLineView.setVisibility(View.INVISIBLE); } else { mLineView.setVisibility(View.VISIBLE); } mTitleText.setText(mDataProvider.getTitle()); mConentText.setText(mDataProvider.getContent()); } @Click protected void onClick() { toast("You clicked item " + (mPosition + 1)); } } }