package com.yizhao.activity; import java.util.HashMap; import java.util.Map; import com.yizhao.action.ProductAction; import com.yizhao.bean.ProductDetailBean; import com.yizhao.core.ATManager; import com.yizhao.core.AsyncWorkHandler; import com.yizhao.core.Const; import android.app.Activity; import android.app.ActivityGroup; import android.app.AlertDialog; import android.app.Dialog; import android.app.LocalActivityManager; import android.app.ProgressDialog; import android.content.Context; import android.content.DialogInterface; import android.content.Intent; import android.os.Bundle; import android.os.Message; import android.util.Log; import android.view.View; import android.view.View.OnClickListener; import android.view.ViewGroup.LayoutParams; import android.widget.ImageView; import android.widget.LinearLayout; import android.widget.TextView; /** * 使用ActivityGroup来切换Activity和Layout * @author */ public class DetailActivityGroup extends ActivityGroup { private LinearLayout container = null; private ImageView goback; private Context context; private TextView detail_tab1; private TextView detail_tab2; private TextView detail_tab3; private LocalActivityManager localActivityManager; private ProductDetailBean detailBean; private TextView detail_title; private Intent _intent; private String pid; private void resumeActivity(Activity activity,Class<?> cls,String activityId){ boolean status = false; if(activity!=null){ status = activity.getIntent().getBooleanExtra("status", false); } Log.d(Const.TAG, "DetailActivityGroup.resumeActivity|activity="+activity+",activityId="+activityId+",status="+status); if(activity!=null && status){ View activityView = activity.getWindow().getDecorView(); if(container!=null){ container.removeAllViews(); container.addView(activityView); } }else{ Intent it = new Intent(this, cls); container.addView(getLocalActivityManager().startActivity(activityId,it.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP)).getDecorView()); } } @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.detail_module); ATManager.addActivity(this); context = this; _intent = this.getIntent(); localActivityManager = getLocalActivityManager(); pid = _intent.getStringExtra("product_id"); goback = (ImageView)findViewById(R.id.detail_goback); detail_title = (TextView)findViewById(R.id.detail_title); goback.setOnClickListener(new OnClickListener(){ @Override public void onClick(View v) { DetailActivityGroup.this.finish(); } }); container = (LinearLayout) findViewById(R.id.detailBody); detail_tab1 = (TextView) findViewById(R.id.detail_tab1); detail_tab2 = (TextView) findViewById(R.id.detail_tab2); detail_tab3 = (TextView) findViewById(R.id.detail_tab3); //第一次载入 if(localActivityManager.getActivity("DetailActivity")==null){ Log.d(Const.TAG, "DetailActivity load first..."); AsyncWorkHandler asyncQueryHandler = new AsyncWorkHandler(){ @Override public Object excute(Map<String, String> map) { detailBean = ProductAction.getProductDetail(map); return null; } @Override public void handleMessage(Message msg) { if(detailBean!=null && detailBean.getName()!=null && !"".equals(detailBean.getName().trim())){ detail_title.setText(detailBean.getName()); } Intent it = new Intent(context, DetailActivity.class); Bundle mBundel = new Bundle(); mBundel.putSerializable("detailBean", detailBean); it.putExtras(mBundel); container.addView(getLocalActivityManager().startActivity("DetailActivity",it.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP)).getDecorView(),LayoutParams.FILL_PARENT, LayoutParams.FILL_PARENT); removeDialog(Const.PROGRESSBAR_WAIT); } }; //异步获取信息 showDialog(Const.PROGRESSBAR_WAIT); Map<String,String> param = new HashMap<String,String>(); param.put("product_id", pid); asyncQueryHandler.doWork(param); } //tab1 detail_tab1.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { Activity forward_activity = localActivityManager.getActivity("DetailActivity"); container.removeAllViews(); if(forward_activity!=null){ resumeActivity(forward_activity,DetailActivity.class,"DetailActivity"); }else{ Intent it = new Intent(); it.setClass(context, DetailActivity.class); it.putExtra("product_id", pid); container.addView(localActivityManager.startActivity("DetailActivity",it.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP)).getDecorView(),LayoutParams.FILL_PARENT, LayoutParams.FILL_PARENT); } detail_tab1.setBackgroundResource(R.drawable.detail_tab_select); detail_tab2.setBackgroundResource(R.drawable.detail_tab_def); detail_tab3.setBackgroundResource(R.drawable.detail_tab_def); } }); //tab2 detail_tab2.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { Activity forward_activity = localActivityManager.getActivity("ReceiveActivity"); container.removeAllViews(); if(forward_activity!=null){ resumeActivity(forward_activity,ReceiveActivity.class,"ReceiveActivity"); }else{ Intent it = new Intent(); it.setClass(context, ReceiveActivity.class); it.putExtra("product_id", pid); container.addView(localActivityManager.startActivity("ReceiveActivity",it.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP)).getDecorView()); } detail_tab1.setBackgroundResource(R.drawable.detail_tab_def); detail_tab2.setBackgroundResource(R.drawable.detail_tab_select); detail_tab3.setBackgroundResource(R.drawable.detail_tab_def); } }); //tab3 detail_tab3.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { Activity forward_activity = localActivityManager.getActivity("ShopActivity"); container.removeAllViews(); if(forward_activity!=null){ resumeActivity(forward_activity,ShopActivity.class,"ShopActivity"); }else{ Intent it = new Intent(); it.setClass(context, ShopActivity.class); it.putExtra("product_id", pid); container.addView(localActivityManager.startActivity("ShopActivity",it.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP)).getDecorView()); } detail_tab1.setBackgroundResource(R.drawable.detail_tab_def); detail_tab2.setBackgroundResource(R.drawable.detail_tab_def); detail_tab3.setBackgroundResource(R.drawable.detail_tab_select); } }); } @Override protected Dialog onCreateDialog(int id) { switch (id) { case Const.PROGRESSBAR_WAIT: ProgressDialog wait_pd = new ProgressDialog(this); wait_pd.setMessage(Const.LOADING); return wait_pd; case Const.DIALOG_YES_NO_MESSAGE: return new AlertDialog.Builder(context) .setTitle("加入收藏?")//设置对话框的标题 .setPositiveButton("确定", new DialogInterface.OnClickListener() {//设置按下表示确定按钮时按钮的text,和按钮的事件监听器 @Override public void onClick(DialogInterface dialog, int whichButton) { removeDialog(Const.DIALOG_YES_NO_MESSAGE); } }) .setNegativeButton("取消", new DialogInterface.OnClickListener() {//设置取消按钮的text 和监听器 @Override public void onClick(DialogInterface dialog, int whichButton) { dialog.dismiss(); } }) .create(); } return null; } }