package com.shizhefei.test.controllers.other; import android.app.Activity; import android.os.Bundle; import android.support.v7.widget.LinearLayoutManager; import android.support.v7.widget.RecyclerView; import android.view.View; import android.widget.Toast; import com.shizhefei.mvc.MVCCoolHelper; import com.shizhefei.recyclerview.HFAdapter; import com.shizhefei.test.models.datasource.MyDataSource; import com.shizhefei.test.models.enties.Book; import com.shizhefei.test.view.adapters.multitype.Message; import com.shizhefei.test.view.adapters.multitype.MultiTypeDataAdapter; import com.shizhefei.test.view.adapters.multitype.provider.BookProvider; import com.shizhefei.test.view.adapters.multitype.provider.MessageProvider; import com.shizhefei.view.coolrefreshview.CoolRefreshView; import com.shizhefei.view.coolrefreshview.header.DefaultHeader; import com.shizhefei.view.multitype.ItemBinderFactory; import com.shizhefei.view.multitype.ItemViewProviderSet; import com.shizhefei.view.mvc.demo.R; import java.util.List; public class MultiTypeActivity extends Activity { private CoolRefreshView coolRefreshView; private RecyclerView recyclerView; private MVCCoolHelper<List<Object>> mvcHelper; private String myUserId = "1"; private View backButton; private MultiTypeDataAdapter<Object> multiTypeDataAdapter; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_multi_type); backButton = findViewById(R.id.button1); coolRefreshView = (CoolRefreshView) findViewById(R.id.multiType_coolRefreshView); recyclerView = (RecyclerView) findViewById(R.id.multiType_recyclerView); coolRefreshView.setPullHeader(new DefaultHeader()); recyclerView.setLayoutManager(new LinearLayoutManager(this)); ItemBinderFactory factory = new ItemBinderFactory(); factory.registerProvider(Book.class, new BookProvider()); factory.registerProvider(Message.class, new ItemViewProviderSet<Message>(new MessageProvider(MessageProvider.ALIGN_LEFT), new MessageProvider(MessageProvider.ALIGN_RIGHT)) { @Override protected int selectIndex(Message message) { return myUserId.equals(message.userId) ? 1 : 0; } }); multiTypeDataAdapter = new MultiTypeDataAdapter<>(factory); // adapter.addHeader(view); multiTypeDataAdapter.setOnItemClickListener(OnItemClickListener); mvcHelper = new MVCCoolHelper<>(coolRefreshView); mvcHelper.setDataSource(new MyDataSource()); mvcHelper.setAdapter(multiTypeDataAdapter); mvcHelper.refresh(); backButton.setOnClickListener(OnClickListener); } @Override protected void onDestroy() { super.onDestroy(); mvcHelper.destory(); } private HFAdapter.OnItemClickListener OnItemClickListener = new HFAdapter.OnItemClickListener() { @Override public void onItemClick(HFAdapter adapter, RecyclerView.ViewHolder vh, int position) { Object object = multiTypeDataAdapter.getData().get(position); Toast.makeText(getApplicationContext(), object.toString(), Toast.LENGTH_SHORT).show(); } }; private View.OnClickListener OnClickListener = new View.OnClickListener() { @Override public void onClick(View v) { if (v == backButton) { finish(); } } }; }