package com.ztspeech.simutalk2.qa; import android.content.Intent; import android.os.Bundle; import android.view.KeyEvent; import android.view.View; import android.view.View.OnClickListener; import android.view.Window; import android.widget.ImageButton; import android.widget.TabHost; import android.widget.TabHost.OnTabChangeListener; import android.widget.TabHost.TabSpec; import android.widget.TextView; import com.ztspeech.simutalk2.R; import com.ztspeech.simutalk2.data.AskTaskList; import com.ztspeech.simutalk2.data.GlobalData; import com.ztspeech.simutalk2.data.MsgGroupList; import com.ztspeech.simutalk2.data.TextPlayer; import com.ztspeech.simutalk2.dictionary.activity.SearchActivity; import com.ztspeech.simutalk2.dictionary.activity.SettingActivity; import com.ztspeech.simutalk2.trans.InterpretActivity; public class MainTabActivity extends UpdateBaseTabActivity implements OnClickListener, OnTabChangeListener { private MsgGroupList mMsgGroupList = MsgGroupList.getInstance(); private AskTaskList mTaskList = GlobalData.getAskInstance();; private TabHost mTabHost = null; private TabSpec mTabInteraction = null; private TabSpec mTabTransCN = null; private TabSpec mTabHistory = null; private TabSpec mTabConfig = null; private TabSpec mTabItems[] = new TabSpec[4]; private ImageButton[] mTabBtns = new ImageButton[4]; private TextView mtvTaskCount; private boolean mIsShowQA = false; private static MainTabActivity mInstance = null; public static MainTabActivity getInstance() { return mInstance; } @Override public boolean onKeyDown(int keyCode, KeyEvent event) { if (keyCode == KeyEvent.KEYCODE_BACK) { this.finish(); overridePendingTransition(R.anim.slideinleft, R.anim.slideoutright); return true; } else { return super.onKeyDown(keyCode, event); } } @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); requestWindowFeature(Window.FEATURE_NO_TITLE); // getWindow().setFormat(PixelFormat.RGBA_8888); setContentView(R.layout.activity_main_tab); mInstance = this; mTabBtns[0] = (ImageButton) findViewById(R.id.btnTrans); mTabBtns[1] = (ImageButton) findViewById(R.id.btnQA); mTabBtns[2] = (ImageButton) findViewById(R.id.btnLib); mTabBtns[3] = (ImageButton) findViewById(R.id.btnSettings); mtvTaskCount = (TextView) findViewById(R.id.tvTaskCount); mTabBtns[0].setOnClickListener(this); mTabBtns[1].setOnClickListener(this); mTabBtns[2].setOnClickListener(this); mTabBtns[3].setOnClickListener(this); mtvTaskCount.setVisibility(View.INVISIBLE); initView(); mTaskList.setChanged(true); MsgGroupList.getInstance().setMsgChanged(true); showTabItem(); } private void showTabItem() { Intent intent = this.getIntent(); int showItem = intent.getIntExtra(MainActivity.MAIN_TAB_DO, MainActivity.MAIN_TAB_SHOW_TRANS); mIsShowQA = false; switch (showItem) { case MainActivity.MAIN_TAB_SHOW_LIB: mTabHost.setCurrentTab(2); break; case MainActivity.MAIN_TAB_SHOW_QA: mTabHost.setCurrentTab(1); mIsShowQA = true; break; case MainActivity.MAIN_TAB_SHOW_SETTINGS: mTabHost.setCurrentTab(3); break; case MainActivity.MAIN_TAB_SHOW_TRANS: default: mTabHost.setCurrentTab(0); break; } onTabChanged(null); } private void initView() { mTabHost = this.getTabHost(); mTabItems[0] = mTabTransCN = mTabHost.newTabSpec("Msg").setIndicator("", null) .setContent(new Intent(this, InterpretActivity.class)); mTabItems[1] = mTabInteraction = mTabHost.newTabSpec("qa").setIndicator("", null) .setContent(new Intent(this, InteractionActivity.class)); mTabItems[2] = mTabHistory = mTabHost.newTabSpec("lib").setIndicator("", null) .setContent(new Intent(this, SearchActivity.class)); mTabItems[3] = mTabConfig = mTabHost.newTabSpec("settings").setIndicator("", null) .setContent(new Intent(this, SettingActivity.class)); mTabHost.addTab(mTabTransCN); mTabHost.addTab(mTabInteraction); mTabHost.addTab(mTabHistory); mTabHost.addTab(mTabConfig); mTabHost.setOnTabChangedListener(this); } public void onClick(View arg0) { int nCount = mTabBtns.length; for (int i = 0; i < nCount; i++) { ImageButton btn = mTabBtns[i]; if (arg0 == btn) { mTabHost.setCurrentTab(i); if (i == 1) { mIsShowQA = true; } else { mIsShowQA = false; } updateTaskCount(); break; } } } /** * ��ʾ�������� * * @param count */ public void updateTaskCount() { int count = 0; if (mIsShowQA == false) { count = mTaskList.getTaskCount() + mMsgGroupList.getNewsCount(); } if (count > 0) { mtvTaskCount.setVisibility(View.VISIBLE); mtvTaskCount.setText(count + ""); } else { mtvTaskCount.setVisibility(View.INVISIBLE); } } public void onTabChanged(String arg0) { // InputMethodManager imm = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE); // if(imm.isActive()){ // imm.toggleSoftInput(0, InputMethodManager.HIDE_NOT_ALWAYS); // } if(TextPlayer.getInstance().isPlaying()){ TextPlayer.getInstance().stop(); } int tab = mTabHost.getCurrentTab(); int nCount = mTabBtns.length; for (int i = 0; i < nCount; i++) { ImageButton btn = mTabBtns[i]; if (tab == i) { btn.setEnabled(false); } else { btn.setEnabled(true); } } } @Override public void updateMesage() { boolean update = false; if (mMsgGroupList.isMsgChanged()) { mMsgGroupList.setMsgChanged(false); InteractionActivity.isFriendNewsUpdate = true; InteractionActivity.isQANewsUpdate = true; MsgGroupListActivity.isViewUpdate = true; update = true; } if (mTaskList.isChanged()) { mTaskList.setChanged(false); InteractionActivity.isTaskListUpdate = true; UserStateActivity.isTaskListUpdate = true; update = true; } if (update) { updateTaskCount(); } } }