开放一个继承于FragmentActivity的页面

package com.wei.core.activity;

import java.io.FileInputStream;

import java.io.IOException;

import java.io.InputStream;

import java.lang.ref.WeakReference;

import android.app.Activity;

import android.app.AlertDialog;

import android.content.BroadcastReceiver;

import android.content.Context;

import android.content.DialogInterface;

import android.content.DialogInterface.OnCancelListener;

import android.content.Intent;

import android.content.IntentFilter;

import android.graphics.Bitmap;

import android.os.Bundle;

import android.support.v4.app.FragmentActivity;

import android.widget.ImageView;

import android.widget.TextView;

import android.widget.Toast;

import com.baidu.mobstat.StatService;

import com.house365.app.analyse.HouseAnalyse;

import com.house365.app.analyse.data.AnalyseMetaData;

import com.house365.core.R;

import com.house365.core.action.ActionTag;

import com.house365.core.anim.AnimBean;

import com.house365.core.application.BaseApplication;

import com.house365.core.constant.CorePreferences;

import com.house365.core.image.AsyncImageLoader;

import com.house365.core.image.AsyncImageLoader.BitMapInputStream;

import com.house365.core.image.CacheImageUtil;

import com.house365.core.image.CacheImageUtil.TextImagePosition;

import com.house365.core.image.ImageLoadedCallback;

import com.house365.core.touch.ImageViewTouch;

import com.house365.core.view.LoadingDialog;

import com.umeng.analytics.MobclickAgent;

public abstract class BaseCommonActivity extends FragmentActivity {

protected String getTAG() {

return this.getClass().getName();

}

protected Activity thisInstance;

protected LoadingDialog tloadingDialog;

private AsyncImageLoader mAil;

protected BaseApplication mApplication;

protected AlertDialog.Builder alertDialog;

private BroadcastReceiver mLoggedOutReceiver = new BroadcastReceiver() {

@Override

public void onReceive(Context context, Intent intent) {

finish();

}

};

protected void onCreate(android.os.Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

thisInstance = this;

mApplication = (BaseApplication) getApplication();

registerReceiver(mLoggedOutReceiver, new IntentFilter(ActionTag.INTENT_ACTION_LOGGED_OUT));

preparedCreate(savedInstanceState);

initView();

initData();

}

protected abstract void preparedCreate(android.os.Bundle savedInstanceState);

protected abstract void initView();

protected abstract void initData();

protected void onDestroy() {

// overridePendingTransition(R.anim.slide_fix, R.anim.slide_out_bottom);

super.onDestroy();

dismissLoadingDialog();

tloadingDialog = null;

alertDialog = null;

if (mAil != null) {

mAil.clearCacheImage();

}

clean();

// mApplication.onAppCancel();

unregisterReceiver(mLoggedOutReceiver);

}

public void setImage(final ImageView imageView, String imageUrl, final int resId, int scaleType) {

CacheImageUtil.setCacheImage(imageView, imageUrl, resId, scaleType, getImageLoader());

}

// liuziqiang overload setImage

public void setImage(final ImageView imageView, String imageUrl, int scaleType, final ImageLoadedCallback imgLoadObj) {

CacheImageUtil.setCacheImage(imageView, imageUrl, scaleType, getImageLoader(), imgLoadObj);

}

public void setTextImage(final TextView textView, TextImagePosition position, String imageUrl) {

CacheImageUtil.setCacheTextImage(textView, position, imageUrl, getImageLoader());

}

public void setTouchImage(final ImageViewTouch imageView, String imageUrl, final int resId, int scaleType) {

CacheImageUtil.setTouchImage(imageView, imageUrl, getResources(), resId, scaleType, getImageLoader());

}

public AsyncImageLoader getImageLoader() {

if (mAil == null) {

mAil = new AsyncImageLoader(this);

}

return mAil;

}

public void setImage(final ImageView imageView, final String localFileUri) {

try {

int w = imageView.getWidth();

int h = imageView.getHeight();

if (w < 0) {

w = -1;

}

if (h < 0) {

h = -1;

}

Bitmap bitmap = mAil.getBitMapFromStream(new BitMapInputStream() {

@Override

public InputStream getInputStream() throws IOException {

return new FileInputStream(localFileUri);

}

}, w, h, mAil.IMAGE_SCALE_TYPE_NONE);

if (bitmap != null && !bitmap.isRecycled()) {

imageView.setImageBitmap(bitmap);

}

} catch (IOException e) {

CorePreferences.ERROR(e);

}

}

private LoadingDialog getLoadingDialog() {

if (tloadingDialog == null) {

tloadingDialog = new LoadingDialog(this, R.style.dialog, R.string.loading);

tloadingDialog.setCancelable(isCancelDialog());

if (isCancelDialog()) {

tloadingDialog.setOnCancelListener(new OnCancelListener() {

@Override

public void onCancel(DialogInterface dialog) {

onExitDialog();

}

});

}

}

return tloadingDialog;

}

public void showLoadingDialog() {

if (getLoadingDialog() != null) {

getLoadingDialog().show();

}

}

public void showLoadingDialog(int resid) {

if (getLoadingDialog() != null) {

getLoadingDialog().setMessage(this.getResources().getString(resid));

getLoadingDialog().show();

}

}

public void dismissLoadingDialog() {

if (getLoadingDialog() != null) {

getLoadingDialog().dismiss();

}

}

@Override

protected void onSaveInstanceState(Bundle outState) {

try {

super.onSaveInstanceState(outState);

} catch (NullPointerException e) {

}

}

public AlertDialog.Builder getAlertDialog() {

if (alertDialog == null) {

alertDialog = new AlertDialog.Builder(this);

}

return alertDialog;

}

public void showToast(String str) {

Toast.makeText(this, str, Toast.LENGTH_SHORT).show();

}

public void showToast(int resId) {

Toast.makeText(this, resId, Toast.LENGTH_SHORT).show();

}

public void onExitDialog() {

thisInstance.finish();

}

public boolean isCancelDialog() {

return true;

}

protected void clean() {

}

AnalyseMetaData analyseMetadata;

protected void onResume() {

super.onResume();

if (CorePreferences.getInstance(this).getCoreConfig().isAnalyse()) {

analyseMetadata = HouseAnalyse.onPageResume(this);

// UMeng

String pageName = this.getClass().getSimpleName();

CorePreferences.DEBUG("pageName:" + pageName);

MobclickAgent.onPageStart(pageName);

MobclickAgent.onResume(this);

}

if (CorePreferences.getInstance(this).getCoreConfig().isOpenBaiduStat()) {

StatService.onResume(this);

}

}

protected void onPause() {

super.onPause();

if (CorePreferences.getInstance(this).getCoreConfig().isAnalyse()) {

// 自有统计后台

HouseAnalyse.onPagePause(analyseMetadata);

// UMeng

String pageName = this.getClass().getSimpleName();

CorePreferences.DEBUG("pageName:" + pageName);

MobclickAgent.onPageEnd(pageName);

MobclickAgent.onPause(this);

}

if (CorePreferences.getInstance(this).getCoreConfig().isOpenBaiduStat()) {

StatService.onPause(this);

}

}

public void finish() {

super.finish();

AnimBean animBean = getFinishAnim();

if (animBean != null && animBean.getIn() > 0 && animBean.getOut() > 0) {

overridePendingTransition(animBean.getIn(), animBean.getOut());

}

}

@Override

public void startActivity(Intent intent) {

super.startActivity(intent);

AnimBean animBean = getStartAnim();

if (animBean != null && animBean.getIn() > 0 && animBean.getOut() > 0) {

overridePendingTransition(animBean.getIn(), animBean.getOut());

}

}

@Override

public void startActivityForResult(Intent intent, int requestCode) {

super.startActivityForResult(intent, requestCode);

AnimBean animBean = getStartAnim();

if (animBean != null && animBean.getIn() > 0 && animBean.getOut() > 0) {

overridePendingTransition(animBean.getIn(), animBean.getOut());

}

}

public AnimBean getStartAnim() {

// return new AnimBean(R.anim.slide_in_bottom, R.anim.slide_fix);

return new AnimBean(R.anim.slide_in_right, R.anim.slide_fix);

}

public AnimBean getFinishAnim() {

// return new AnimBean(R.anim.slide_fix, R.anim.slide_out_bottom);

return new AnimBean(R.anim.slide_fix, R.anim.slide_out_right);

}

}

时间: 2024-10-13 13:56:19

开放一个继承于FragmentActivity的页面的相关文章

Kooboo中怎么新增一个关联的Details 动态页面。

Kooboo中怎么新增一个关联的Details 动态页面. 有几个要点: 1. Sub Page的Parent Page 必须是英文书写.如果是中文会出现找不到页面 500错误 2. 要在Page Mapping中设置 url和page的关联 3. page要改成dynamices的. Dynamic pages I A dynamic web page is a kind of web page that has been prepared with fresh information (co

学习ASP.NET MVC(七)——我的第一个ASP.NET MVC 查询页面

在本篇文章中,我将添加一个新的查询页面(SearchIndex),可以按书籍的种类或名称来进行查询.这个新页面的网址是http://localhost:36878/Book/ SearchIndex.该页面中用一个下拉框来显示种类,用一文本框让用户输入书籍的名称.当用户在点击“查询”按钮之后,页面会被刷新,显示用户的查询结果.控制器会根据用户提交查询参数,由动作方法(Action Motehd)去解析用户提交的参数值,并使用这些值来查询数据库. 第一步,创建SearchIndex查询页面    

一个不错的PHP文件页面缓存类

在php中缓存分类数据库缓存,文件缓存和内存缓存,下面我来给各位同学详细介绍PHP文件缓存类实现代码,有需要了解的朋友可参考. 页面缓存类  代码如下 复制代码 <?php    /*    * 缓存类    cache   * 作    者:多菜鸟   * 实    例:   */   /*include( "cache.php" );       $cache = new cache(30);   $cache->cacheCheck();       echo dat

新建一个登录,找回密码,注册页面的工程,使用控制器实现三个页面的跳转

新建一个工程,关闭ARC ,  AppDelegate.h 中window属性strong改成retain APPDelegate.m中window 初始化时加autorelease     上面重写dealloc方法 建一个UIViewController 的子类 RootViewController 把建好的三个页面添加到控制器默认视图上,并加上页面中按钮的触发跳转事件 ,设置APPDelegate.m中window 的根控制器为RootViewController 具体代码 UILabel

每天一个JavaScript实例-确定web页面的区域

<!DOCTYPE html> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> <title>每天一个JavaScript实例-确定web页面的区域</title> <script> function size(){ var width = 0; var heigh

学习ASP.NET MVC(五)——我的第一个ASP.NET MVC CURD页面

在上一篇文章中我们已经创建了实体类,在这一篇文章中,我将创建一个新的控制器类——BookController,使用BookController对Books表中的数据进行CURD操作的方法,并使用视图模板在浏览器中显示所查询到的书籍数据信息. 一.添加控制器类 在Visual Studio 的“解决方案资源管理器”中右键单击Controllers文件夹,并创建一个新的BookController控制器类.如下图. Visual Studio 会弹出一个“添加控制器”对话框(如下图). 在对话框中填

完成一个较为完整的用户注册页面

实验目的: 要求能够熟练掌握javascript的一系列知识要点,并能够熟练的应用到实际项目中,能够通过javascript语法.对象.事件.函数等来完成页面上的脚本代码. 实验内容: 要求: 完成一个较为完整的用户注册页面. 1:要求用户输入用户名时只能够输入英文.数字和下划线 2:要求用户输入的密码和确认密码必须一致 3:要求用户上传本地磁盘中的一个图片文件作为头像 4:要求用户输入验证邮箱,通过javascript代码验证邮箱格式是否正确 5:要求页面实现验证码功能,点击"注册"

一个继承了抽象类的普通类的执行顺序

今天看<java编程思想>抽象类那节的时候,做了一个练习题3(p171页),发现了一个很有意思的东西,一个继承了抽象类的普通类的执行顺序是怎样的呢? package JavaChoiceQuestion; /** * @Auther: 李景然 * @Date: 2018/4/13 19:45 * @Description: */ //抽象类 public abstract class AbstractClass { public static void main(String[] args){

web前端课程技术内容之如何做一个简单的手机端页面的翻页

[如何做一个简单的手机端页面的翻页] 第一步:创建移动端页面内 HTML + CSS [注]可用弹性布局 但需要注意的是 外层盒子的定位 第二步: 思考问题 要实现怎样的效果? 1. 手指滑动时触发事件[左右]两个方向 2.点击footer部分的下标实现切换效果 3.点击footer部分的下标实现下标颜色变化 第三步:编写JS代码 添加监听事件 document.addEventListener('DOMContentLoaded',function(){ 创建一个数组用于调用数组属性值 或者