package info.justaway.adapter.account; import android.content.Context; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.widget.ArrayAdapter; import android.widget.ImageView; import android.widget.TextView; import butterknife.ButterKnife; import butterknife.Bind; import info.justaway.R; import info.justaway.listener.OnTrashListener; import info.justaway.model.AccessTokenManager; import info.justaway.model.UserIconManager; import info.justaway.util.ThemeUtil; import info.justaway.widget.FontelloButton; import twitter4j.auth.AccessToken; public class AccessTokenAdapter extends ArrayAdapter<AccessToken> { private LayoutInflater mInflater; private int mLayout; private OnTrashListener mOnTrashListener; private int mColorBlue; class ViewHolder { @Bind(R.id.icon) ImageView mIcon; @Bind(R.id.screen_name) TextView mScreenName; @Bind(R.id.trash) FontelloButton mTrash; ViewHolder(View view) { ButterKnife.bind(this, view); } } public void setOnTrashListener(OnTrashListener onTrashListener) { mOnTrashListener = onTrashListener; } public AccessTokenAdapter(Context context, int textViewResourceId) { super(context, textViewResourceId); mInflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE); mLayout = textViewResourceId; mColorBlue = ThemeUtil.getThemeTextColor(R.attr.holo_blue); } @Override public View getView(final int position, View convertView, ViewGroup parent) { ViewHolder viewHolder; // ビューを受け取る View view = convertView; if (view == null) { // 受け取ったビューがnullなら新しくビューを生成 view = mInflater.inflate(this.mLayout, null); if (view == null) { return null; } viewHolder = new ViewHolder(view); view.setTag(viewHolder); } else { viewHolder = (ViewHolder) view.getTag(); } final AccessToken accessToken = getItem(position); UserIconManager.displayUserIcon(accessToken.getUserId(), viewHolder.mIcon); viewHolder.mScreenName.setText(accessToken.getScreenName()); if (AccessTokenManager.getUserId() == accessToken.getUserId()) { viewHolder.mScreenName.setTextColor(mColorBlue); viewHolder.mTrash.setVisibility(View.GONE); } viewHolder.mTrash.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { if (mOnTrashListener != null) { mOnTrashListener.onTrash(position); } } }); return view; } }