package com.freelib.multiitem.demo;
import android.content.Context;
import android.support.v7.app.AppCompatActivity;
import android.support.v7.widget.LinearLayoutManager;
import android.support.v7.widget.RecyclerView;
import android.widget.Toast;
import com.freelib.multiitem.adapter.BaseItemAdapter;
import com.freelib.multiitem.adapter.holder.BaseViewHolder;
import com.freelib.multiitem.demo.bean.ImageTextBean;
import com.freelib.multiitem.demo.viewholder.ImageAndTextManager;
import com.freelib.multiitem.listener.OnItemClickListener;
import com.freelib.multiitem.listener.OnItemLongClickListener;
import org.androidannotations.annotations.AfterViews;
import org.androidannotations.annotations.EActivity;
import org.androidannotations.annotations.ViewById;
import java.util.ArrayList;
import java.util.List;
@EActivity(R.layout.layout_recycler)
public class ItemClickActivity extends AppCompatActivity {
@ViewById(R.id.recyclerView)
protected RecyclerView recyclerView;
public static void startActivity(Context context) {
ItemClickActivity_.intent(context).start();
}
@AfterViews
protected void initViews() {
setTitle(R.string.item_click_title);
recyclerView.setLayoutManager(new LinearLayoutManager(this));
//初始化adapter
BaseItemAdapter adapter = new BaseItemAdapter();
//为XXBean数据源注册XXManager管理类
adapter.register(ImageTextBean.class, new ImageAndTextManager());
recyclerView.setAdapter(adapter);
List<Object> list = new ArrayList<>();
for (int i = 0; i < 20; i++) {
list.add(new ImageTextBean(R.drawable.img2, "AAAAA" + i));
}
adapter.setDataItems(list);
adapter.setOnItemClickListener(new OnItemClickListener() {
@Override
public void onItemClick(BaseViewHolder viewHolder) {
//通过viewHolder获取需要的数据
toastUser(String.format("你点击了第%s位置的数据:%s", viewHolder.getItemPosition(), viewHolder.getItemData()));
}
});
adapter.setOnItemLongClickListener(new OnItemLongClickListener() {
@Override
public void onItemLongClick(BaseViewHolder viewHolder) {
//通过viewHolder获取需要的数据
toastUser(String.format("你长按了第%s位置的数据:%s", viewHolder.getItemPosition(), viewHolder.getItemData()));
}
});
}
private void toastUser(String msg) {
Toast.makeText(ItemClickActivity.this, msg, Toast.LENGTH_SHORT).show();
}
}