package com.ztspeech.simutalk2.trans.speak; import com.ztspeech.simutalk2.data.TransTextTable; import com.ztspeech.simutalk2.dictionary.dom.SQLiteDom; import com.ztspeech.simutalk2.dictionary.util.PublicArithmetic; import com.ztspeech.simutalk2.trans.speak.SpeakView.IOnSpeakViewAdapterCallback; import android.content.Context; import android.view.View; import android.view.ViewGroup; import android.widget.BaseAdapter; import android.widget.ListView; public class SpeakAdapter extends AnimSmoothLvBaseAdapter { private Context mContext = null; private IOnSpeakViewAdapterCallback mSpeakAdapterCallback = null; private float mFontSize = 20; public void setOnSpeakViewAdapterListener(IOnSpeakViewAdapterCallback listener){ mSpeakAdapterCallback = listener; } public SpeakAdapter(Context context, TransTextTable table,ListView lv) { super(context, table.mItems, lv); this.mContext = context; mTable = table; } public void setFontSize( float size){ mFontSize = size; } public void addItem(SpeakItemData obj){ int nSize = mTable.size(); if(nSize > 0){ SpeakItemData prev = mTable.get(nSize-1); prev.focus = false; } mTable.add(nSize, obj); } public void update(SpeakItemData obj){ int nIndex = mTable.size()-1; mTable.mItems.remove(nIndex); mTable.mItems.add(nIndex,obj); } public void updateAfterSpeak(SpeakItemData obj){ int nIndex = mTable.size()-1; mTable.update(nIndex, obj); } public void commont(int nIndex,SpeakItemData obj){ mTable.commont(nIndex,obj); } public int removeItem(int nIndex,SpeakItemData data){ mTable.mItems.remove(nIndex); int index = mTable.remove(data); // new PublicArithmetic().tongbuKouyiRecord(mTable.findSaid(data), index); return index; } public void clear(){ mTable.clear(); new SQLiteDom().deleteAllRecord(); } public int getCount() { // TODO Auto-generated method stub return mTable.size(); } public Object getItem(int arg0) { return null; } public long getItemId(int arg0) { return arg0; } public View getView(int arg0, View arg1, ViewGroup arg2) { // TODO Auto-generated method stub if (arg1 == null) { SpeakView v = new SpeakView(mContext, mTable.get(arg0)); v.setOnCallbackListener(mSpeakAdapterCallback); arg1 = v; } this.clearCache(arg1); SpeakView v = (SpeakView)arg1; SpeakItemData data = mTable.get(arg0); v.setFontSize(mFontSize); v.setData(data); // if(data.type == SpeakItemData.Define.SPEAK_TYPE_FULL){ // v.setPadding(0, 0, 0, (arg2.getHeight() >> 1) - 50); // } // else { // v.setPadding(0, 0, 0, 0); // } this.startAnim(v, arg0); return v; } // չʾ������ private TransTextTable mTable; public void setFocus(SpeakItemData data) { data.isFocus = data; this.notifyDataSetChanged(); } }