package com.bigdo.app; import com.bigdo.common.RState; import com.bigdo.util.Pub; import com.bigdo.util.WSResult; import android.annotation.SuppressLint; import android.content.Intent; import android.os.Bundle; import android.os.Handler; import android.os.Message; import android.view.KeyEvent; import android.view.View; import android.view.View.OnClickListener; import android.view.Window; import android.widget.ImageView; import android.widget.LinearLayout; import android.widget.RelativeLayout; import android.widget.TextView; public class Main_Activity extends BaseActivity { private final int waitime = 1000 * 6; RelativeLayout splash_log; MainHomeBll homeBll; MainBoxBll boxBll; MainMeBll meBll; View main_home_host, main_box_host, main_me_host; Bundle savedInstanceState; boolean isShowSplash = false; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main_activity); Pub.createSystemSwitcherShortCut(this); if (savedInstanceState != null) { try { isShowSplash = savedInstanceState.getBoolean("isShowSplash", false); } catch (Exception e) { } } this.savedInstanceState = savedInstanceState; splash_log = (RelativeLayout) findViewById(R.id.splash_img_host); showSplash(); setMenuEvent(); } private void showSplash() { if (splash_log != null) { if (!isShowSplash) { isShowSplash = true; splash_log.setVisibility(RelativeLayout.VISIBLE); new Handler().postDelayed(new Runnable() { @Override public void run() { if (splash_log != null) { splash_log.setVisibility(RelativeLayout.GONE); init(); } } }, waitime); return; } else { if (homeBll == null || boxBll == null || meBll == null) { splash_log.setVisibility(RelativeLayout.GONE); init(); } } splash_log.setVisibility(RelativeLayout.GONE); } } @Override public void onActivityResult(int requestCode, int resultCode, Intent data) { if (homeBll != null) { homeBll.onActivityResult(requestCode, resultCode, data); } if (boxBll != null) { boxBll.onActivityResult(requestCode, resultCode, data); } if (meBll != null) { meBll.onActivityResult(requestCode, resultCode, data); } } /** * 初始化 * * @param savedInstanceState */ private void init() { main_home_host = (View) findViewById(R.id.main_home_host); main_box_host = (View) findViewById(R.id.main_box_host); main_me_host = (View) findViewById(R.id.main_me_host); homeBll = new MainHomeBll(this, main_home_host, WsHandler); homeBll.create(savedInstanceState); boxBll = new MainBoxBll(this, main_box_host, WsHandler); boxBll.create(savedInstanceState); meBll = new MainMeBll(this, main_me_host, WsHandler); meBll.create(savedInstanceState); homeBll.show(); } /** * 设置菜单事件 */ private void setMenuEvent() { final LinearLayout home = (LinearLayout) findViewById(R.id.menu_item_home); final LinearLayout box = (LinearLayout) findViewById(R.id.menu_item_box); final LinearLayout me = (LinearLayout) findViewById(R.id.menu_item_me); home.setOnClickListener(new OnClickListener() { @Override public void onClick(View arg0) { // TODO Auto-generated method stub setContentVisibility(main_home_host, main_box_host, main_me_host); setMenuItembg(home, R.drawable.menu_home_press, R.color.menu_selected_fc); setMenuItembg(box, R.drawable.menu_bx, R.color.menu_fc); setMenuItembg(me, R.drawable.menu_me, R.color.menu_fc); homeBll.show(); } }); box.setOnClickListener(new OnClickListener() { @Override public void onClick(View arg0) { setContentVisibility(main_box_host, main_home_host, main_me_host); setMenuItembg(home, R.drawable.menu_home, R.color.menu_fc); setMenuItembg(box, R.drawable.menu_bx_press, R.color.menu_selected_fc); setMenuItembg(me, R.drawable.menu_me, R.color.menu_fc); boxBll.show(); } }); me.setOnClickListener(new OnClickListener() { @Override public void onClick(View arg0) { setContentVisibility(main_me_host, main_home_host, main_box_host); setMenuItembg(home, R.drawable.menu_home, R.color.menu_fc); setMenuItembg(box, R.drawable.menu_bx, R.color.menu_fc); setMenuItembg(me, R.drawable.menu_me_press, R.color.menu_selected_fc); meBll.show(); } }); } private void setMenuItembg(LinearLayout sitem, int r, int fc) { TextView m_item = (TextView) sitem.getChildAt(0); m_item.setCompoundDrawablesWithIntrinsicBounds(0, r, 0, 0); m_item.setTextColor(getResources().getColor(fc)); } /** * 设置显示的内容 * * @param sview * @param hview * @param hview2 */ private void setContentVisibility(View sview, View hview, View hview2) { sview.setVisibility(View.VISIBLE); hview.setVisibility(View.GONE); hview2.setVisibility(View.GONE); } /** * 事件通知 */ @SuppressLint("HandlerLeak") Handler WsHandler = new Handler() { public void handleMessage(Message msg) { super.handleMessage(msg); if (msg.arg1 == RState.WSCall) { WSResult result = (WSResult) msg.getData().getParcelable( WSResult.ResultKey); if (homeBll != null && result.RequestCode == MainHomeBll.Ws_R_Code) { homeBll.onHandler(result); } else if (boxBll != null && result.RequestCode == MainBoxBll.Ws_R_Code) { boxBll.onHandler(result); } else if (meBll != null && result.RequestCode == MainMeBll.Ws_R_Code) { meBll.onHandler(result); } } } }; private long exitTime = 0; private boolean isFrist = true; public boolean onKeyDown(int keyCode, KeyEvent event) { if (keyCode == KeyEvent.KEYCODE_BACK && event.getAction() == KeyEvent.ACTION_DOWN) { if (homeBll != null && main_home_host != null && main_home_host.getVisibility() == View.VISIBLE && homeBll.onKeyBack()) { return true; } else { if (exitTime > 0 && Math.abs(System.currentTimeMillis() - exitTime) > 2000) { isFrist = true; } if (isFrist) { isFrist = false; showInfo("再按一次返回桌面"); exitTime = System.currentTimeMillis(); return true; }// else { // finish(); // System.exit(0); // } } moveTaskToBack(false); return true; } return super.onKeyDown(keyCode, event); } @Override public void onSaveInstanceState(Bundle outState) { super.onSaveInstanceState(outState); outState.putBoolean("isShowSplash", isShowSplash); } @Override public void onRestoreInstanceState(Bundle savedInstanceState) { super.onRestoreInstanceState(savedInstanceState); isShowSplash = savedInstanceState.getBoolean("isShowSplash", false); } @Override public void onClearData() { if (homeBll != null) { homeBll.onClearData(); } if (boxBll != null) { boxBll.onClearData(); } if (meBll != null) { meBll.onClearData(); } } @Override public void onVideoBroadcast(Intent intent) { // TODO Auto-generated method stub } }