BaseActivity

1.新建BaseActivity继承FragmenytActivity。由于我习惯在Activity里用些公共的方法,所以将此类建为abstract

public abstract class BaseActivity extends FragmentActivity {

}

2.重写onCreate()方法

public abstract class BaseActivity extends FragmentActivity {

             @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_base_activity);

    }
}

3.编写必要的属性

public abstract class BaseActivity extends FragmentActivity {

    protected int mScreenWidth;
    protected int mScreenHeight;
    protected float mDensity;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_base_activity);

        DisplayMetrics metrics =new DisplayMetrics();
        getWindowManager().getDefaultDisplay().getMetrics(metrics);
        mScreenHeight = metrics.heightPixels;
        mScreenWidth = metrics.widthPixels;
        mDensity = metrics.density;

    }
}

4.编写子类公共的方法

protected void showShortToast(int resId){
        Toast.makeText(this, getString(resId), Toast.LENGTH_SHORT).show();
    }
    protected void showShortToast(String text){
        Toast.makeText(this, text, Toast.LENGTH_SHORT).show();
    }

    protected void showLongToast(int resId){
        Toast.makeText(this, getString(resId), Toast.LENGTH_LONG).show();
    }

    protected void showLongToast(String text){
        Toast.makeText(this, text, Toast.LENGTH_LONG).show();
    }

    protected void showLogDebug(String tag,String msg){
        Log.d(tag, msg);
    }

    protected void showLogError(String tag,String msg){
        Log.e(tag, msg);
    }

    protected void startActivity(Class<?> cls, Bundle bundle){
        Intent intent = new Intent();
        intent.setClass(this, cls);
        if(bundle != null){
            intent.putExtras(bundle);
        }
        startActivity(intent);
    }

    protected void startActivity(Class<?> cls){
        startActivity(cls,null);
    }

    protected AlertDialog showAlertDialog(String title,String message){
        AlertDialog alertDialog = new AlertDialog.Builder(this)
        .setTitle(title)
        .setMessage(message)
        .show();
        return alertDialog;
    }

    protected AlertDialog showAlertDialog(String title,String message
            ,String posistiveText
            ,DialogInterface.OnClickListener onPositiveClickListener
            ,String negativeText
            ,DialogInterface.OnClickListener onNegativeClickListener){
        AlertDialog alertDialog = new AlertDialog.Builder(this)
        .setTitle(title)
        .setMessage(message)
        .setPositiveButton(posistiveText, onPositiveClickListener)
        .setNegativeButton(negativeText, onNegativeClickListener)
        .show();
        return alertDialog;
    }

    protected void defaultFinish(){
        super.finish();
    }

    abstract void initView();
    abstract void initEvent();
时间: 2024-11-09 10:44:05

BaseActivity的相关文章

BaseActivity的抽取

Activity有些公共部分,比如setContentView.Activity管理.初始化操作.联网操作.Activity跳转.关闭当前Activity.保存用户登录信息.读取用户登录信息等. 我们可以抽取成一个抽象类BaseActivity,再新建Activity的时候,继承BaseActivity重写一些方法即可,如果用不着的方法也可以不用管. public abstract class BaseActivity extends FragmentActivity{ /*★★★★★★★★★★

Android--带你一点点封装项目 MVP+BaseActivity+Retrofit+Dagger+RxJava(三)

1,这一篇博客是和大家一起来封装我们最后的Dagger2,其实之前也写过关于简单的Dagger2,这里是地址,完全没了解的同学可以先去看一下这篇,感谢很多小伙伴一直在耐心的等待这一篇 2,Dagger2可以说是些技术中最难上手的,不过把主要的四个注解理解到位了,基本上就可以用了: @Inject Inject主要有两个作用,一个是使用在构造函数上,通过标记构造函数让Dagger2来使用(Dagger2通过Inject标记可以在需要这个类实例的时候来找到这个构造函数并把相关实例new出来)从而提供

Android 谈谈封装那些事 --BaseActivity 和 BaseFragment(二)

1.前言 昨天谈了BaseActivity的封装,Android谈谈封装那些事--BaseActivity和BaseFragment(一)有很多小伙伴提了很多建议,比如: 通用标题栏可以自定义View而不放在Base里面,代码更统一 BaseEventActivity里面应该留出开关保证不需要Bus的Activity使用 BaseStatusActivity里面就一个方法没必要新建一个 还有一些小的细节 在这里感谢大家的建议了啊.我修改了一部分,后面会慢慢优化,最后在HLibrary里面贴出最优

2.抽取代码(BaseActivity)

1.抽取BaseActivity   管理所有activity 方便退出 public class BaseActivity extends ActionBarActivity { // 管理运行的所有的activity public final static List<BaseActivity> mActivities = new LinkedList<BaseActivity>();//增删快 //使用广播也可以,如果当前Activity想退出可以,sendReceiver /

&lt;include&gt;标签和BaseActivity联合使用简化代码结构

include标签可以简化布局文件结构,方便维护,可以使用BaseActivity作为所有activity的父类,在里边做一些公共代码或者做一些公共布局的初始化工作供子类调用,简化代码结构,两者的结合使Android代码逻辑结构清晰并且更便于维护. 父类的activity由于没有setContentView属性,所以在BaseActivity中要想获得控件需要得到子类实例 在BaseActivity的onResume方法中加入方法 protected void onResume() { <spa

从BaseActivity与BaseFragment的封装谈起

源至Hongyang微信公众号,博客源址:从BaseActivity与BaseFragment的封装谈起 这篇博客主要是从BaseActivity与BaseFragment的封装开始,总结自己在实战开发中关于Fragment的注意事项以及心得体会.先看以下效果图: 这里模拟的是用户登录模块,你可能会说,很普通的效果嘛,这有啥.嘿嘿,那我要告诉你的是,这么多模块仅仅由两个Activity构成的.等你从头到尾看完这篇博客,你就会惊叹其中的奥秘了.废话不多说,开始. 多模块Activity+多Frag

android baseActivity

package newdemo.jeno.designdemo.activitynew; import android.os.Bundle;import android.support.annotation.Nullable;import android.support.v7.app.AppCompatActivity;import android.support.v7.widget.Toolbar;import android.view.View;import android.widget.I

自定义BaseActivity

思路很简单:将软件里用到的大量重复的页面布局抽象出来,编写成一个抽象的Activity类,然后在实现具体页面时继承它,并且在主内容空白区填入需要的内容. 例如在最近开发的一款资讯类应用中,每张页面上面都有一个顶栏,上面有两个按钮,按钮中间是一行标题文字.按钮上的文字及点击后的功能在每个页面中可能会都不相同.如下图所示的. 面对这样一个页面的需求,我们可以设计出一个基本的页面模板AbstractAc1,代码如下所示. /** * 通用页面模板1:含上栏,包括左右两个按钮,一个title文字区 *

Android App框架设计之编写基类BaseActivity

Android App框架设计之编写基类BaseActivity 编写基类BaseActivity - OOP里面子类里面能够共享父类的方法,提高代码的可复用性 - 基类的编写要根据实际项目的情况,有的可能很简单 比如只是显示 "关于" 信息, 业务功能非常少 你可以不用继承基类进行扩展 BaseActivity继承Activity 还是 FragmentActivity 还是其它? 也是根据你的技术要求,因为解决问题的方法有很多种,或者你根本不用写基类也能完成工作. 我们的目的是编写