Android基本常识、技术

Android图标大小大致参考

//仅供参考<br>hdpi      72x72
xhdpi     96x96
xxhdpi   144x144
xxxhdpi  192x192

kotlin中的switch语法

@RequiresApi(Build.VERSION_CODES.N)
@OnClick(R.id.search, R.id.start_data, R.id.end_data)
open fun onViewClicked(v: View?) {
    when (v?.id) {
        R.id.start_data -> showDatePicker(startType)
        R.id.end_data -> showDatePicker(endType)
        R.id.search -> getPageDataList()
    }
}

解决依赖库重复的问题

defaultConfig {
    。。。
    //解决库冲突
    multiDexEnabled true
}
dependencies{
    //解决库重复
    implementation 'com.android.support:multidex:1.0.3'
}

android中Edittext校验库

android-saripaar官网
校验库使用

BaseRecyclerViewAdapterHelper的使用

github介绍地址

allprojects {
    repositories {
        ...
        maven { url 'https://jitpack.io' }
    }
}
dependencies {
    implementation 'com.github.CymChad:BaseRecyclerViewAdapterHelper:3.0.4'
}
//加载更多在adapter实现LoadMoreModule
implements LoadMoreModule
//部分API
/ 获取加载更多模块
mAdapter.getLoadMoreModule();
// 打开或关闭加载更多功能(默认为true)
mAdapter.getLoadMoreModule().setEnableLoadMore(false);
// 是否自定加载下一页(默认为true)
mAdapter.getLoadMoreModule().setAutoLoadMore(true);
// 当数据不满一页时,是否继续自动加载(默认为true)
mAdapter.getLoadMoreModule().setEnableLoadMoreIfNotFullPage(false);
// 所有数据加载完成后,是否允许点击(默认为false)
mAdapter.getLoadMoreModule().setEnableLoadMoreEndClick(false);
// 是否处于加载中
mAdapter.getLoadMoreModule().isLoading();
// 预加载的位置(默认为1)
mAdapter.getLoadMoreModule().setPreLoadNumber(1);
// 设置加载更多监听事件
mAdapter.getLoadMoreModule().setOnLoadMoreListener(new OnLoadMoreListener() {
    @Override
    public void onLoadMore() {
        loadMore();
    }
});
/******************************** 状态设置 ********************************/
// 当前这次数据加载完毕,调用此方法
mAdapter.getLoadMoreModule().loadMoreComplete();
// 当前这次数据加载错误,调用此方法
mAdapter.getLoadMoreModule().loadMoreFail();
// 所有数据加载完成,调用此方法
// 需要重置"加载完成"状态时,请调用 setNewData()
mAdapter.getLoadMoreModule().loadMoreEnd();
// 状态手动置为“加载中”,并且会调用加载更多监听
// 一般情况下,不需要自己设置'加载中'状态
mAdapter.getLoadMoreModule().loadMoreToLoading();

安卓中popupWindow点击外部不消失原因

//这一句得写在showAsDropDown的前面 不然不起作用
popupWindow.setOutsideTouchable(true);
popupWindow.showAsDropDown(showView);

java基础 hashSet转list

HashSet<String>hSet = new HashSet<>();
hSet.add("ZS");
List<String> mList= new ArrayList<>(item1List);
LogUtil.e("mList" + mList.toString());

activity管理类ActivityCollector

public class ActivityCollector {

    public static List<Activity> activities = new ArrayList<>();

    public static void addActivity(Activity activity) {
        activities.add(activity);
    }

    public static void removeActivity(Activity activity) {
        activities.remove(activity);
    }

    public static void finishAll() {
        for (Activity activity : activities) {
            if (!activity.isFinishing()) {
                activity.finish();
            }
        }
    }
}
使用
//@RuntimePermissions
public class BaseActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        ActivityCollector.addActivity(this);//加入这一行
    }
    @Override
    protected void onDestroy() {
        super.onDestroy();
        ActivityCollector.removeActivity(this);//加入这一行
    }
}

Android Butterknife的使用(黄油刀的使用)

//项目的gradle
buildscript {
  repositories {
    mavenCentral()
    google()
   }
  dependencies {
    classpath 'com.jakewharton:butterknife-gradle-plugin:10.2.1'
  }
}
//app的gradle
android {
  ...
  // Butterknife requires Java 8.
  compileOptions {
    sourceCompatibility JavaVersion.VERSION_1_8
    targetCompatibility JavaVersion.VERSION_1_8
  }
}

dependencies {
  implementation 'com.jakewharton:butterknife:10.2.1'
  annotationProcessor 'com.jakewharton:butterknife-compiler:10.2.1'
}
// 自己在android studio中安装一个插件就可以右键生成
//Activity中使用    ButterKnife.bind(this);
//fragment中使用   bind = ButterKnife.bind(this, view);//this不能变···写死就完了
//adapter中使用  在viewholder中使用
public ViewHolder(View view) { 
  ButterKnife.bind(this, view);
} 

证书sha1值获取

keytool -list -v -keystore xxx.jks

证书修改

signingConfigs {
        release {
            storeFile file("xxx/xxx/xxx/xxx.keystore")   //签名文件全路径
            storePassword "123456"
            keyAlias "xxx.keystore"
            keyPassword "123456"
            //7.0使用的APK Signature Scheme v2签名方案使外部打入渠道信息会修改签名导致没办法安装 所以目前这里我们需要先禁用掉
            v2SigningEnabled false
        }
        debug {
            storeFile file("xxx/xxx/xxx/xxx.keystore")
            storePassword "123456"
            keyAlias "xxx.keystore"
            keyPassword "123456"
            v2SigningEnabled false
        }
    }
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值