package org.aisen.weibo.sina.ui.fragment.timeline; import android.content.DialogInterface; import android.view.View; import android.widget.TextView; import com.afollestad.materialdialogs.AlertDialogWrapper; import org.aisen.android.support.inject.ViewInject; import org.aisen.android.ui.fragment.APagingFragment; import org.aisen.android.ui.fragment.adapter.ARecycleViewItemView; import org.aisen.weibo.sina.R; import org.aisen.weibo.sina.sinasdk.bean.StatusContent; /** * Created by wangdan on 16/4/3. */ public abstract class ATimelineHeaderView extends ARecycleViewItemView<StatusContent> implements View.OnClickListener { public static final int LAYOUT_RES = R.layout.headerview_profile_timeline; private ATimelineFragment fragment; public static final String[] timelineFeatureArr = { "0", "1", "2", "5" }; public static final String[] profileFeatureArr = { "0", "1", "2" }; @ViewInject(id = R.id.txtName) TextView txtTitle; public ATimelineHeaderView(ATimelineFragment fragment, View itemView) { super(fragment.getActivity(), itemView); this.fragment = fragment; itemView.setOnClickListener(this); } @Override public void onBindView(View convertView) { super.onBindView(convertView); setHeaderView(); } @Override public void onBindData(View convertView, StatusContent data, int position) { } @Override public void onClick(View v) { if (fragment.isRefreshing()) return; String[] titles = fragment.getResources().getStringArray(getTitleArrRes()); new AlertDialogWrapper.Builder(fragment.getActivity()) .setTitle(R.string.profile_feature_dialog) .setNegativeButton(R.string.cancel, null) .setSingleChoiceItems(titles, getFeaturePosition(), new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { if (getFeaturePosition() == which) { dialog.dismiss(); return; } fragment.setFeature(getTitleFeature()[which]); // 清理线程状态,可以加载缓存 fragment.cleatTaskCount(APagingFragment.PAGING_TASK_ID); setHeaderView(); fragment.requestDataDelaySetRefreshing(200); dialog.dismiss(); } }) .show(); } private void setHeaderView() { String[] titles = fragment.getResources().getStringArray(getTitleArrRes()); txtTitle.setText(titles[getFeaturePosition()]); } private int getFeaturePosition() { for (int i = 0; i < getTitleFeature().length; i++) { if (getTitleFeature()[i].equals(fragment.getFeature())) return i; } return 0; } abstract protected int getTitleArrRes(); abstract protected String[] getTitleFeature(); }