package com.bosi.chineseclass.model; import java.util.List; import android.content.Context; import android.content.Intent; import android.view.View; import android.view.View.OnClickListener; import android.view.ViewGroup; import android.widget.Button; import android.widget.LinearLayout; import android.widget.LinearLayout.LayoutParams; import android.widget.TextView; import android.widget.Toast; import com.bosi.chineseclass.AppDefine; import com.bosi.chineseclass.R; import com.bosi.chineseclass.activitys.SampleHolderActivity; import com.bosi.chineseclass.bean.BphzBean; import com.bosi.chineseclass.components.NiftyDialogComponents; import com.bosi.chineseclass.components.NiftyDialogComponents.OnNiftyCallBack; import com.bosi.chineseclass.control.SampleControl; import com.bosi.chineseclass.db.BPHZ; import com.bosi.chineseclass.han.util.PreferencesUtils; import com.bosi.chineseclass.han.util.Utils; import com.bosi.chineseclass.su.ui.actvities.WordsDetailActivity; import com.bosi.chineseclass.utils.ViewHolder; //第一个层级的 public class BphzLevAdapter extends ComListViewAdapter<List<BphzBean>> { BPHZ mBphz = new BPHZ(); public BphzLevAdapter(Context mContext, List<BphzBean> mlists) { super(mContext, mlists); mNiftyDialog = new NiftyDialogComponents(mContext); } @Override public int getCount() { return 15; } @Override public View getView(int position, View mView, ViewGroup arg2) { if (position == 14) { return statisticView(position, mView); } else { return commonView(position, mView,false); } } protected void intentToWordDital(int start, int end, int tag) { PreferencesUtils.putInt(context, AppDefine.ZYDefine.EXTRA_DATA_BPHZ_SATSTICSTART, start); PreferencesUtils.putInt(context, AppDefine.ZYDefine.EXTRA_DATA_BPHZ_SATSTICEND, end); Intent mIntent = new Intent(context, WordsDetailActivity.class); mIntent.putExtra(WordsDetailActivity.EXTRA_NAME_WORDS_TAG, tag); context.startActivity(mIntent); } NiftyDialogComponents mNiftyDialog; private void showNotifyDialog() { String dataRemote = context.getResources().getString( R.string.dialog_clearbphz_levdata); mNiftyDialog.setUpNifty("确认", "取消", "提示", dataRemote); mNiftyDialog.setNoftyCallBack(new OnNiftyCallBack() { @Override public void onBt2Click() { mNiftyDialog.dismissBuilder(); } @Override public void onBt1Click() { // 弹出一个提示框 用于确认是否删除数据 mNiftyDialog.dismissBuilder(); mBphz.deleteDbBaseBetweenSE(context, 1, AppDefine.ZYDefine.BPHZ_REFID_ADDED + AppDefine.ZYDefine.BPHZ_TOTALNUM); changeDataSource(null); } }); mNiftyDialog.showBuilder(); } protected void sampleView(final int position, View mView) { final Button mButtonUnRem = ViewHolder.get(mView, R.id.bt_bphz_item_unrenumber); mButtonUnRem.setOnClickListener(new OnClickListener() { @Override public void onClick(View arg0) { String numUnRem = mButtonUnRem.getText().toString(); onClickItemCommon(position, AppDefine.ZYDefine.BPHZ_TAG_UNREMBER, numUnRem); } }); final Button mButtonRem = ViewHolder.get(mView, R.id.bt_bphz_item_renumber); mButtonRem.setOnClickListener(new OnClickListener() { @Override public void onClick(View arg0) { String numRem = mButtonRem.getText().toString(); onClickItemCommon(position, AppDefine.ZYDefine.BPHZ_TAG_REMBER, numRem); } }); mButtonRem.setText("0"); mButtonUnRem.setText("0"); if (mListData != null && mListData.size() > 0) { BphzBean mData = mListData.get(position); if (mData != null) { mButtonUnRem.setText(mData.mUnRemberNum); mButtonRem.setText(mData.mRemberNum); } } } protected View statisticView(final int position, View mView) { if (mView == null) { mView = View.inflate(context, R.layout.layout_bphz_item_statistic, null); } sampleView(position, mView); TextView mTvClearAllData = ViewHolder.get(mView, R.id.tv_bphz_clearalldata); mTvClearAllData.setOnClickListener(new OnClickListener() { @Override public void onClick(View arg0) { showNotifyDialog(); } }); return mView; } protected void onClickItemCommon(int position, int tag, String num) { if (num.equals("0")) { Toast.makeText( context, context.getResources().getString( R.string.toast_remote_nothingtolearn), Toast.LENGTH_SHORT).show(); return; } BphzBean mData = mListData.get(position); String array[] = mData.mNumberBetween.split("-"); String numStart = array[0]; String numEnd = array[1]; intentToWordDital( AppDefine.ZYDefine.BPHZ_REFID_ADDED + Integer.parseInt(numStart), AppDefine.ZYDefine.BPHZ_REFID_ADDED + Integer.parseInt(numEnd), tag); } protected void onClickItemNumsBetween(int position) { Intent mIntent = new Intent(context, SampleHolderActivity.class); PreferencesUtils.putInt(context, "position", position); mIntent.putExtra(SampleControl.KEY_FRAGMENTNAMES, new String[] { "BphzLevvFragment" }); mIntent.putExtra(SampleControl.KEY_PACKAGETNAME, "com.bosi.chineseclass.fragments"); context.startActivity(mIntent); } protected void setItemViewBg(View mView) { mView.setBackgroundResource(R.drawable.bphz_levitem_bg); } protected View commonView(final int position, View mView,boolean isCenter) { if (mView == null) { mView = View.inflate(context, R.layout.layout_bphz_item_checkpoint, null); } LinearLayout mLayoutBody = ViewHolder .get(mView, R.id.rl_bphz_item_body); setItemViewBg(mLayoutBody); Button mButtonSize = ViewHolder.get(mView, R.id.bt_bphz_item_number); if(isCenter){ LinearLayout.LayoutParams mParams = (LayoutParams) mButtonSize.getLayoutParams(); mParams.setMargins(Utils.dip2px(context, 10),0, Utils.dip2px(context, 10), 0); } mButtonSize.setOnClickListener(new OnClickListener() { @Override public void onClick(View arg0) { onClickItemNumsBetween(position); } }); sampleView(position, mView); if (mListData != null && mListData.size() > 0) { BphzBean mData = mListData.get(position); if (mData != null) { mButtonSize.setText(mData.mNumberBetween); } } int lev = getLevByPosition(position); if (lev == 0) { mButtonSize .setBackgroundResource(R.drawable.bphz_levitem_number_lvbg); } else if (lev == 1) { mButtonSize .setBackgroundResource(R.drawable.bphz_levitem_number_lvvbg); } else if (lev == 2) { mButtonSize .setBackgroundResource(R.drawable.bphz_levitem_number_lvvvbg); } else { mButtonSize .setBackgroundResource(R.drawable.bphz_levitem_number_lvvvvbg); } return mView; } // 用于区分颜色 protected int getLevByPosition(int position) { if (position <= 4) { return 0; } else if (position > 4 && position <= 6) { return 1; } else if (position > 6 && position <= 9) { return 2; } return 3; } }