前言

这只是记录下开发过程中常用的api,是经常可能忘了导致去百度的

我还是希望大家最好记在脑子里,需要也提倡查找api,但我感觉只有记住了才能融会贯通,满足需求。每次查出来的,怕不了解,不敢修改等等就不好了

我会记住确定不会忘了,我就会删除一条。如果第二次进来看到怎不见了呢,也不用吃惊哈,序号也会没有

开始吧

1、禁止用户按返回键关闭界面

Api: onKeyDown return true即可

代码如下:

override fun onKeyDown(keyCode: Int, event: KeyEvent): Boolean {

if (keyCode == KeyEvent.KEYCODE_BACK ) {

return true//不执行父类点击事件

}

return super.onKeyDown(keyCode, event)

}

2、获取资源颜色快捷方法

Api: ContextCompat.getColor(mActivity!!, R.color.m_red_one)

示例代码:

tv.setTextColor(ContextCompat.getColor(mActivity!!, R.color.m_red_one))

3、动态添加布局

Api: LayoutInflater.from

平常都是工具类封装好,希望没有封装时,也能随手写出来

注意:这个方法参数还有点玄学,自己研究了

示例代码:

LayoutInflater.from(mActivity).inflate(R.layout.login_study_plan_job_item, ll_job, false)

4、RecyclerView添加item间距

Api: rv.addItemDecoration

示例代码:

rv_learn_direction.addItemDecoration(object :RecyclerView.ItemDecoration(){

override fun getItemOffsets(outRect: Rect, itemPosition: Int, parent: RecyclerView?) {

super.getItemOffsets(outRect, itemPosition, parent)

outRect.right = UtilHelper.dip2px(mActivity,16f)

outRect.bottom = UtilHelper.dip2px(mActivity,16f)

}

})

注意这个添加一次,也就是这代码只能运行一次,因为每次addItemDecoration都是有效的,会叠加间距。

所以一般放在初始化操作,不要放在接收数据,操作adapter时操作。

5、监听EditText的输入改变

Api:addTextChangedListener

6、adapter的item的点击事件

Api:onItemClickListener

示例代码:

getAdapter()?.onItemClickListener = object :BaseQuickAdapter.OnItemClickListener{

override fun onItemClick(adapter: BaseQuickAdapter?, view: View?, position: Int) {

val item = getAdapter()!!.data[position]

}

}

}

8、adapter的item里面某个控件的点击事件

helper.addOnClickListener(R.id.tv_report)

getAdapter()?.setOnItemChildClickListener { _, view, position ->

when (view.id) {

R.id.tv_report -> {

7、fragment代替布局,动态添加

示例代码:

val tr = supportFragmentManager.beginTransaction()

tr.replace(R.id.fl_content, ActiveFragment.getInstance())

tr.commitAllowingStateLoss()

8、点击切换fragment

示例代码:

fun switchFragment(posFragment: Int) {

var fragment: Fragment? = null

when (posFragment) {

0 -> {

if (ceoActiveFragment == null) {

ceoActiveFragment = CEOActiveFragment.getInstance(source,position,sum,sheng_id,shi_id, qu_id)

}

fragment = ceoActiveFragment

}

1 -> {

if (ceoTaskFragment == null) {

ceoTaskFragment = CEOTaskFragment.getInstance(source,position,sum,sheng_id,shi_id,qu_id)

}

fragment = ceoTaskFragment

}

}

if (fragment == null) {

return

}

val trx = supportFragmentManager.beginTransaction()

//隐藏当前fragment

if (null != mCurrentFragment) {

trx.hide(mCurrentFragment!!)

}

if (!fragment.isAdded) {

trx.add(R.id.fl_content, fragment)

} else {

trx.show(fragment)

}

mCurrentFragment = fragment

trx.commitAllowingStateLoss()

}

9、TextView也可以中间省略号

android:ellipsize="middle"

示例代码:

android:ellipsize="middle"

android:maxWidth="110dp"

android:singleLine="true"

10、canvas绘制图片

drawBitmap

示例代码:

canvas.drawBitmap(bitmap, left, top, paintImage);

11、以SP单位设置TextView的textSize

TypedValue.COMPLEX_UNIT_SP

示例代码:

bar_title.setTextSize(TypedValue.COMPLEX_UNIT_SP,17f)

12、TextView显示html富文本

示例代码:

String result = "实时更新中,当前股票行情:%d";

result = String.format(result, (int) (Math.random() * 5000 + 1000));

mTv.setText(Html.fromHtml(result));

13、放快速双击

RxView.clicks(tv_video_price)

.throttleFirst(2, TimeUnit.SECONDS)

.subscribe(object : Consumer {

override fun accept(t: Any?) {

//弹出视频详情,视频暂停

}

})

14、对于Application,Service,Activity三者的应用场景

context.png

new View(context) 也可以用Application的

15、Android自带的判断是否有某个权限

ContextCompat.checkSelfPermission

示例代码:

if (ContextCompat.checkSelfPermission(activity!!, Manifest.permission.CALL_PHONE) != PackageManager.PERMISSION_GRANTED) {

//不具有打电话权限,需要进行权限申请

ToastUtils.showCustomToast("没有电话权限")

return

}

判断某个权限是否永久拒绝(需要在拒绝里面进一步判断):

if(!ActivityCompat.shouldShowRequestPermissionRationale(this, Manifest.permission.CALL_PHONE)){

}

16、单独刷新某一Item

notifyItemChanged(position)

示例代码:

if (getHeaderLayoutCount() > 0) {

notifyItemChanged(i + getHeaderLayoutCount(), "点赞成功");

} else {

notifyItemChanged(i, "点赞成功");

}

break;

17、控件执行补间动画

AnimationUtils.loadAnimation

示例代码:

var translateAnim = AnimationUtils.loadAnimation(this,R.anim.view_anim)

tv_content.startAnimation(translateAnim)

18、控件执行属性动画

ObjectAnimator.ofFloat

示例代码:

ObjectAnimator animator = ObjectAnimator.ofFloat(tv,"rotationX",0,270,0);

animator.setDuration(2000);

animator.start();

19、正确的List遍历方法

Iterator iterator = list.iterator();

while (iterator.hasNext()){

System.out.println(iterator.next());

}

20、requestLayout,invalidate,postInvalidate

invalidate :只调onDraw(),在UI线程调用

postInvalidate:只调onDraw(),在子线程调用

requestLayout:onMeasure、onLayout、onDraw ,在UI线程调用

21、Float相加减精度问题

切记float类型的相加减运算多次很容易出问题

示例代码:

public static double addTwo(double a, double b) {

BigDecimal bd1 = new BigDecimal(Double.toString(a));

BigDecimal bd2 = new BigDecimal(Double.toString(b));

return bd1.add(bd2).doubleValue();

}

android常用api大全,Android开发个人总结常用的api相关推荐

  1. android面试题大全 android面试题总结

    android面试题大全  android面试题总结 1.Android系统的架构 Android系统架构之应用程序  Android会同一系列核心应用程序包一起发布,该应用程序包包括email客户端 ...

  2. 疯狂Java和Android面试题大全(Android版)

    疯狂Java和Android面试题大全(Android版) 本大全每个月会定期更新,索取网址:http://www.fkjava.org Java核心技术部分 Java核心技术部分的面试题,可能覆盖J ...

  3. android常用api大全,Android API详解大全.pdf

    Android API详解大全 Android -- TextView 一.TextView的API 1.1 结构 java.lang.Object ↳ android.view.View ↳ and ...

  4. android linearlayout属性大全,Android中LinearLayout布局的常用属性总结读书笔记

    8种机械键盘轴体对比 本人程序员,要买一个写代码的键盘,请问红轴和茶轴怎么选? 原CSDN博客已弃用,文章会逐渐迁移过来. 应朋友们反馈的Android基础薄弱的问题,决定出一套Android基础教程 ...

  5. Android 面试题大全 android中级----进阶------ 知识点

    // Android 的中等进阶知识点理解 1 内存泄漏是什么 ?? 2 Android oom 内存溢出 ?? 3 Retrofit详解 ?? 4 Rxjava详解 ?? 5 Android 性能优 ...

  6. android界面图标大全,Android UI设计常识和Android UI界面欣赏酷站推荐

    这几天都是iphone6的信息.25学堂根据群里网友的一些建议.今天把android设计的一些基本规范和设计尺寸常识再来罗列一下. 之前25学堂认真整理的关于android ui设计规范的知识点如下: ...

  7. api arx autocad_AutoCAD开发选择----ObjectARX还是.net API(转载)

    本文基于AutoCAD 2006新推出的.NET API为工具,介绍了在.NET平台下对AutoCAD进行二次开发的技术,并与目前常用的VBA.ObjectARX作了对比.同时讨论了如何弥补.NET ...

  8. html5 百度地图api文档,开发指南--百度地图JavaScript API大众版.doc

    开发指南--百度地图JavaScriptAPI大众版开发指南--百度地图JavaScriptAPI大众版 简介 JavaScript API大众版 JavaScript API功能介绍 百度地图Jav ...

  9. android常用api大全,Android相关常用API……

    android.provider.MediaStore里包含了相关的Image,Video,Audio信息,可通过managedQuery方法来查询和遍历. Android中的AdapterView使 ...

最新文章

  1. MySQL Profiling 的使用
  2. 音视频编解码的国际标准
  3. Sagemaker快速学习
  4. Springboot中艾特Controller和艾特RestController之间的区别
  5. visual studio无法更新_VS Code Python 扩展 5 月更新
  6. 二叉树先序、中序和后序遍历
  7. 我的Android进阶之旅------修改Android签名证书keystore的密码、别名alias以及别名密码...
  8. 【android studio】解决android studio drawable新建项目时只有一个drawable目录的问题
  9. Python-判断变量类型和继承链-type isinstance
  10. Colaboratory读取谷歌云盘(Google drive)中的数据(2020年3月28日更新)
  11. 华为方会提供一份CRS(客户需求)和SOW(工作任务书)
  12. 中望3d快捷键命令大全_中望3D快捷键设置
  13. 计算机辅助工程试卷,《计算机辅助工程软件(UG)》试卷10–2答.doc
  14. ACM------吃在工大(合工大OJ 1359)
  15. 3DMAx Panda Directx Exporter 导出 X插件
  16. java手机号中间4位使用*替换
  17. java增函数的单变量求解,最底层码农的不易谁能体会?谁心里苦谁知道啊。
  18. 基于SSM的校园音乐点歌系统平台
  19. JVM类加载过程,JDK和JER区别
  20. python Django 连接mysql数据库创建表详细全过程

热门文章

  1. 机器学习案例:预测自行车流量——基于Scikit-Learn
  2. 计算机网络,概念,发展历史,分类,协议
  3. R配对样本t检验(PAIRED T-TEST​​​​​​​)
  4. 好心情:吃精神科药物药不见效?你可能忽视了血药浓度
  5. Linux,你了解多少!
  6. python中function takes exactly_Python error TypeError: function takes exactly 1 argument (5 given)
  7. 记一次搭建 nodebb 论坛
  8. iOS自定义身份证键盘
  9. C语言中task的用法,C++11中std::packaged_task的使用详解
  10. 单位内网访问外网的二种方式