package com.lzx.demo.ui;
import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.support.v7.widget.LinearLayoutManager;
import android.support.v7.widget.RecyclerView;
import android.support.v7.widget.Toolbar;
import android.view.LayoutInflater;
import android.view.MenuItem;
import android.view.View;
import android.view.ViewGroup;
import android.widget.TextView;
import android.widget.Toast;
import com.lzx.demo.R;
import com.lzx.demo.adapter.SectionedRecyclerViewAdapter;
import com.lzx.demo.bean.AnimalObject;
import com.lzx.demo.interfaces.Sectionizer;
import java.util.ArrayList;
import java.util.List;
public class SectionAnimalActivity extends AppCompatActivity implements Sectionizer {
RecyclerView recyclerView ;
List<AnimalObject> list ;
SectionedRecyclerViewAdapter sectionedRecyclerViewAdapter ;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
setSupportActionBar(toolbar);
getSupportActionBar().setDisplayHomeAsUpEnabled(true);
recyclerView = (RecyclerView)findViewById(R.id.list);
recyclerView.setLayoutManager(new LinearLayoutManager(getApplicationContext()));
list = new ArrayList<>();
list.add(new AnimalObject("Cat","Mammals"));
list.add(new AnimalObject("Lion","Mammals"));
list.add(new AnimalObject("Dog","Mammals"));
list.add(new AnimalObject("Monkey","Mammals"));
list.add(new AnimalObject("Puma","Mammals"));
list.add(new AnimalObject("Albatross","Birds"));
list.add(new AnimalObject("Pigeon","Birds"));
list.add(new AnimalObject("Crabs","Aquatic Animals"));
list.add(new AnimalObject("Sharks","Aquatic Animals"));
list.add(new AnimalObject("Man","Mankind"));
list.add(new AnimalObject("Women","Mankind"));
list.add(new AnimalObject("Black","Colors"));
list.add(new AnimalObject("Gray","Colors"));
list.add(new AnimalObject("Green","Colors"));
list.add(new AnimalObject("Orange","Colors"));
list.add(new AnimalObject("Red","Colors"));
list.add(new AnimalObject("White","Colors"));
list.add(new AnimalObject("Yellow","Colors"));
MyAdapter myAdapter = new MyAdapter();
sectionedRecyclerViewAdapter = new SectionedRecyclerViewAdapter(getApplicationContext(),
R.layout.layout_list_section_animal, R.id.textViewItemSection, myAdapter, this);
sectionedRecyclerViewAdapter.setSections(list);
recyclerView.setAdapter(sectionedRecyclerViewAdapter);
}
@Override
public String getSectionTitle(Object object) {
return ((AnimalObject)object).type;
}
//--------------- ViewHolder-----------------------
private static class MyViewHolder extends RecyclerView.ViewHolder implements View.OnClickListener {
public TextView title ;
ViewHolderClickListener clickListener ;
public MyViewHolder(View itemView, ViewHolderClickListener clickListener ) {
super(itemView);
title = (TextView)itemView.findViewById(R.id.textViewItemList);
this.clickListener = clickListener ;
itemView.setOnClickListener(this);
}
@Override
public void onClick(View v) {
if (clickListener != null)
clickListener.onClick(v);
}
public interface ViewHolderClickListener{
public void onClick(View v);
}
}
//-------------------Adapter----------------------------
public class MyAdapter extends RecyclerView.Adapter<MyViewHolder> implements MyViewHolder.ViewHolderClickListener {
@Override
public int getItemCount() {
return list.size();
}
@Override
public MyViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
View itemView = LayoutInflater.
from(parent.getContext()).
inflate(R.layout.layout_list_item_animal, parent, false);
return new MyViewHolder(itemView,this);
}
@Override
public void onBindViewHolder(MyViewHolder holder, int position) {
AnimalObject animalObject = list.get(position);
holder.title.setText(animalObject.name);
}
@Override
public void onClick(View v) {
Toast.makeText(getApplicationContext(), list.get(sectionedRecyclerViewAdapter.getIndexForPosition(recyclerView.getChildPosition(v))).name, Toast.LENGTH_SHORT).show();
}
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
if (item.getItemId() == android.R.id.home) {
finish();
}
return true;
}
}