Android Activity 基础公共方法的提取

很多Android的小伙伴再刚接手编程初期没有大体的开发框架, 想到啥就写啥, 今天来教下大家一些框架及基础的代码,这样能为你节省了很多体力以及代码量。

今天我就要说下我的部分公共的类

public abstract class BaseActivity extends AppCompatActivity {
    @Override
    protected void onCreate(@Nullable Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        x.view().inject(this);
        initEvent();
    }
    abstract public void initEvent();
    public Activity getBaseActivityContext(){
        return this;
    }
    public int getScreenWidth(){
        Display defaultDisplay = getWindowManager().getDefaultDisplay();
        Point point = new Point();
        defaultDisplay.getSize(point);
        return point.x;
    }
    public int getScreenHeight(){
        Display defaultDisplay = getWindowManager().getDefaultDisplay();
        Point point = new Point();
        defaultDisplay.getSize(point);
        return point.y;
    }
    public void showShortToast(String info){
        Toast toast = Toast.makeText(getBaseActivityContext(), info, Toast.LENGTH_SHORT);
        toast.setGravity(Gravity.CENTER, 0, 0);
        toast.show();
    }
    public void showLongToast(String info){
        Toast toast = Toast.makeText(getBaseActivityContext(), info, Toast.LENGTH_LONG);
        toast.setGravity(Gravity.CENTER, 0, 0);
        toast.show();
    }
    public String getStringFromId(int stringId){
        return getBaseActivityContext().getResources().getString(stringId);
    }
    public int getColorFromId(int stringId){
        return getBaseActivityContext().getResources().getColor(stringId);
    }
   public void showLog(Activity activity, String info){
        if(isNeedInput){
            Log.e(getCurrentClassName(activity), info);
        }
    }
    public String getCurrentClassName(Activity activity){
        return activity.getClass().getSimpleName();
    }
    public void setTitleInfo(String info){
        ((TextView) findViewById(R.id.include_title_info)).setText(info);
    }
    public void include_title_back(View view){
        finish();
    }}

application

public class ApplicationContext extends Application implements Thread.UncaughtExceptionHandler {
    @Override
    public void onCreate() {
        super.onCreate();
        x.Ext.init(this);
        x.Ext.setDebug(false);
        Thread.setDefaultUncaughtExceptionHandler(this);
        initBiaoqingMap();
    }
    @Override
    public void uncaughtException(@NonNull Thread t, @NonNull Throwable e) {
        System.exit(0);
    }
    }

继承的activity

@ContentView(R.layout.activity_login)
public class LoginActivity extends BaseActivity implements View.OnClickListener {
    @ViewInject(R.id.login_nickname)
    private EditText login_nickname;
    @ViewInject(R.id.login_password)
    private EditText login_password;
    @ViewInject(R.id.login_password_check)
    private ImageView login_password_check;
    @ViewInject(R.id.login_login)
    private TextView login_login;
    @ViewInject(R.id.login_forgetPwd)
    private TextView login_forgetPwd;
    @ViewInject(R.id.login_register)
    private TextView login_register;
    private SharedPreferences loginShare;
    @Override
    public void initEvent() {
        addPermission();
        login_register.setOnClickListener(this);
        login_forgetPwd.setOnClickListener(this);
        login_login.setOnClickListener(this);
        login_password_check.setOnClickListener(this);
        loginShare = getSharedPreferences(fileSharedPreferences, MODE_PRIVATE);
        String name = loginShare.getString(fileNameSharedPreferences, null);
        String pwd = loginShare.getString(filePwdSharedPreferences, null);
        if(!TextUtils.isEmpty(name) && !TextUtils.isEmpty(pwd)){
            autuLogin(name, pwd);
        }
    }
}

这样我们就可以把一下弹窗 ,Toast, 上下文,获取string.xml文字的方法, 获取color.xml颜色的方法,通过findviewbyid 获取控件等都提取出来,这样我们就只需要直接调用父类的方法, 可以减少很多的代码量。开发一年的工作经验不自觉提取的公共方法仅供大家参考分享。

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值