package jp.mixi.practice.messagingandnotification; import android.content.Context; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.widget.TextView; import java.util.List; import jp.mixi.practice.messagingandnotification.BindableAdapter; /** * ViewHolderパターンで実装 * Created by Hideyuki.Kikuma on 2015/02/18. */ public class ClickableAdapter extends BindableAdapter<ClickableAdapter.ClickableItem> { private static final int LAYOUT_ID = android.R.layout.simple_expandable_list_item_1; public ClickableAdapter(Context context, List<ClickableItem> items) { super(context, items); } @Override public View newView(LayoutInflater inflater, int position, ViewGroup container) { View view = inflater.inflate(LAYOUT_ID, container, false); ViewHolder holder = new ViewHolder(view); view.setTag(holder); return view; } @Override public void bindView(ClickableItem item, int position, View view) { ViewHolder holder = (ViewHolder) view.getTag(); holder.mTitle.setText(item.mTitle); view.setOnClickListener(item.mClickListener); } private static class ViewHolder { private TextView mTitle; ViewHolder(View view) { mTitle = (TextView) view.findViewById(android.R.id.text1); } } public static class ClickableItem { private String mTitle; private View.OnClickListener mClickListener; public ClickableItem(String title, View.OnClickListener onClickListener) { mTitle = title; mClickListener = onClickListener; } } }