Giter Club home page Giter Club logo

hqs-common-android's Introduction

hqs-common

一些Android常用的工具类, 以及其他一些开源的代码.

添加到项目

gradle


dependencies {
    compile 'com.hqs.common:hqs-common:1.1.20'
}

使用说明

1. AppCallbackProcessor.java

全局的回调, 可以部分替换startActivityForResult, 广播, 同步, 界面之间传值等. 使用WeakReference避免循环引用, 造成内存泄露.

类方法
  • AppCallbackProcessor.addCallback(call)
  • AppCallbackProcessor.addCallback(call, id)
  • AppCallbackProcessor.call(params)
  • AppCallbackProcessor.call(params, id)
  • AppCallbackProcessor.removeCallback(id)
  • AppCallbackProcessor.removeAllCallbacks()
AppCallback
public interface AppCallback {
    void call(Map<String, Object> params);
}
说明: call函数中的param, 可以在回调是把参数以键值对的方式传递
使用示例
public class Main1Activity extends AppCompatActivity {


    private TextView tv;
    private AppCallback callback;

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

        callback = new AppCallbackProcessor.AppCallback() {
            @Override
            public void call(Map<String, Object> params) {
                tv.setText(params.get("title").toString());
            }
        );
        tv = (TextView) findViewById(R.id.text);
    }

    public void buttonClick(View view){

        // 设置回调
        AppCallbackProcessor.addCallback(callback);

        // 注意: 由于使用WeakReference,
        // 如果直接用匿名内部类的方式调用, 如:
        // AppCallbackProcessor.addCallback(new  AppCallbackProcessor.AppCallback() {
        //    @Override
        //    public void call(Map<String, Object> params) {
        //        tv.setText(params.get("title").toString());
        //    }
        // });
        // callback可能会被销毁, 造成在回调时(AppCallbackProcessor.call(params))没有任何反应,
        // 原因是callback已被销毁,
        // 解决: 将callback设为为activity的一个字段.

        Intent intent = new Intent(this, Main2Activity.class);
        startActivity(intent);
    }
}
在Main2Activity中回调, 例如:
// 在Main2Activity中回调
public void buttonClick(View view){

    Map<String, Object>params = new HashMap<>();
    params.put("title", "hello");

    // 回调
    AppCallbackProcessor.call(params);

    finish();
}


2. ActivityUtil.java

设置全屏显示activity, 隐藏actionBar

类方法
  • ActivityUtil.setActivityFullScreen(activity)
  • ActivityUtil.hideActionBar(activity)

3. AppUtil.java

获取手机型号等

类方法
  • AppUtil.getAppName(context) // 获取应用程序的名称
  • AppUtil.getVersionName(context) // 获取应用程序版本名称信息
  • AppUtil.getDeviceId(context) // 获取设备的唯一标识,deviceId
  • AppUtil.getPhoneBrand() // 获取手机品牌
  • AppUtil.getPhoneModel() // 获取手机型号
  • AppUtil.getBuildLevel() // 获取手机系统API
  • AppUtil.getBuildVersion() // 获取手机版本
  • AppUtil.isAppInstalled(context, packageName) // 判断是否安装

其他类

  • ColorUtil
  • DateUtil
  • DensityUtil
  • Log
  • MD5Util
  • NetUtil
  • ScreenUtil
  • SDCardUtil
  • SharedPreferenceUtil
  • StatusBarUtil
  • ValidteUtil
  • ViewUtil
  • 自定义TabBarView,简单实现Tab页的主界面
  • 自定NavigationBar
  • TimerButton(倒计时功能的按钮)

使用方法

本人实在太懒, 请感兴趣的同学点进去直接查看源码, 使用方法简单方便

hqs-common-android's People

Contributors

hqs5678 avatar

Stargazers

 avatar  avatar

Watchers

 avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.