package com.yizhao.activity;
import com.yizhao.core.ATManager;
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.content.Context;
import android.content.DialogInterface;
import android.content.Intent;
import android.os.Bundle;
import android.util.Log;
import android.view.KeyEvent;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.LinearLayout;
import android.widget.ScrollView;
/**
* 使用ActivityGroup来切换Activity和Layout
* @author
*/
public class CommActivityGroup extends ActivityGroup {
private ScrollView container = null;
private Context context;
private LinearLayout menu_ss;
private LinearLayout menu_fl;
private LinearLayout menu_sc;
private LocalActivityManager localActivityManager;
private static final String ProductActivity = "ProductActivity";
private static final String IndexGalleryActivity = "IndexGalleryActivity";
private void resumeActivity(Activity activity,Class<?> cls,String activityId){
// boolean status = false;
container.removeAllViews();
// if(activity!=null){
// status = activity.getIntent().getBooleanExtra("status", false);
// }
Log.d(Const.TAG, "CommActivityGroup.resumeActivity|activity="+activity+",activityId="+activityId);
// if(activity!=null && status){
// View activityView = activity.getWindow().getDecorView();
// 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.layout_module);
ATManager.addActivity(this);
context = this;
localActivityManager = getLocalActivityManager();
container = (ScrollView)findViewById(R.id.container_index);
menu_ss = (LinearLayout)findViewById(R.id.menu_ss);
menu_fl = (LinearLayout)findViewById(R.id.menu_fl);
menu_sc = (LinearLayout)findViewById(R.id.menu_sc);
//第一次载入
if(localActivityManager.getActivity("IndexGalleryActivity")==null){
Intent it = new Intent(this, IndexGalleryActivity.class);
container.addView(getLocalActivityManager().startActivity(IndexGalleryActivity,it.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP)).getDecorView());
}
//首页搜索
menu_ss.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
menu_ss.setBackgroundResource(R.drawable.menu_change);
menu_fl.setBackgroundResource(R.drawable.menu_def);
menu_sc.setBackgroundResource(R.drawable.menu_def);
Activity forward_activity = localActivityManager.getActivity(IndexGalleryActivity);
resumeActivity(forward_activity,IndexGalleryActivity.class,IndexGalleryActivity);
}
});
//分类
menu_fl.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
menu_ss.setBackgroundResource(R.drawable.menu_def);
menu_fl.setBackgroundResource(R.drawable.menu_change);
menu_sc.setBackgroundResource(R.drawable.menu_def);
Activity forward_activity = localActivityManager.getActivity(ProductActivity);
resumeActivity(forward_activity,ProductActivity.class,ProductActivity);
}
});
//收藏
menu_sc.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
Intent it = new Intent(context, MyScActivity.class);
startActivity(it);
}
});
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
menu.add(0,1,1,"返回");
menu.add(0,2,2,"退出");
return super.onCreateOptionsMenu(menu);
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
if(item.getItemId()==2){
showDialog(Const.DIALOG_YES_NO_MESSAGE);
}
return super.onOptionsItemSelected(item);
}
@Override
protected Dialog onCreateDialog(int id) {
switch (id) {
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);
ATManager.exitClient(context);
}
})
.setNegativeButton("取消", new DialogInterface.OnClickListener() {//设置取消按钮的text 和监听器
@Override
public void onClick(DialogInterface dialog, int whichButton) {
dialog.dismiss();
}
})
.create();
}
return null;
}
/**
* 监听返回键事件
*/
@Override
public boolean onKeyDown(int keyCode, KeyEvent event){
if (keyCode == KeyEvent.KEYCODE_BACK && event.getRepeatCount() == 0) {
showDialog(Const.DIALOG_YES_NO_MESSAGE);
return true;
}else{
return super.onKeyDown(keyCode, event);
}
}
}