android常用知识点汇总

13 篇文章 0 订阅

1. 输入密码界面,密码的可见不可见,使用CheckBox

输入内容的显示和隐藏

et_password.setTransformationMethod(HideReturnsTransformationMethod.getInstance()); //密码可见
et_password.setTransformationMethod(PasswordTransformationMethod.getInstance());//密码不可见

Android:EditText设置密码可见与不可见

16. 开关控件:SwitchCompat与Switch设置宽度,一个是app下的switchMinWidth,一个是android下的switchMinWidth

<android.support.v7.widget.SwitchCompat
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignParentEnd="true"
    android:layout_centerVertical="true"
    android:layout_marginEnd="10dp"
    app:switchMinWidth="60dp"/>
<Switch
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignParentEnd="true"
    android:layout_centerVertical="true"
    android:layout_marginEnd="10dp"
    android:switchMinWidth="60dp"/>

SwitchCompat与Switch简单使用

SwitchCompat使用小结

17. listView的item无响应

在item最外层添加属性 android:descendantFocusability=”blocksDescendants”

ListView setOnItemClickListener 事件无响应的解决办法

ListView setOnItemClickListener无效原因分析

18.  Android TextView实现下划线的几种方式    SpannableString和SpannableStringBuilder总结

19. RelativeLayout中包含Button/ImageButton等可点击控件,若想实现整个布局都可点击,最好在Java文件中给RelativeLayout、Button/ImageButton都设置click点击事件。若只设置RelativeLayout的点击事件,可能出现点击了Button/ImageButton控件,但无效果的情况。

20. CheckBox下setChecked(true)方法会触发setOnCheckedChangeListener的onCheckedChanged()方法,若需要只有手动点击时,才触发该方法,可以用isPressed()方法:

cb.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
	@Override
	public void onCheckedChanged(CompoundButton compoundButton, boolean b) {
		if (!compoundButton.isPressed()) return;
	}
});

21

ProgressBar用于展示    
SeekBar是ProgressBar的一个子类,展示的同时,可拖拽-要实现SeekBar.OnSeekBarChangeListener接口

progressBar与seekBar区别_lollipop的专栏-CSDN博客

Android 拖动条SeekBar的简单使用 - 简书

Android攻城狮SeekBar制作可拖动的进度条 - 张兮兮 - 博客园

AppCompatSeekBar 是SeekBar的子类  
    setOnSeekBarChangeListener(SeekBar.OnSeekBarChangeListener arg)
Android 自定义SeekBar(滑块跟随进度条移动) - 知乎
   AppCompatSeekBar  |  Android Developers

android seekbar宽度没有满铺布局

Android seekbar拖动的时候显示一个小圆点

22. Android Viewpager切换焦点问题,ScrollView,ListView, seekBar发生位移

23. kotlin和Java的split()方法,返回值不同

24. 正则表达式提取字符串中的数字

25. Objects.util(null, null) = true; 

26. RelativeLayout 内有ImageButton 或 View设置了onClick方法后,RelativeLayout的点击事件不会触发:把ImageButton换成ImageView

27.  androidX和V4包冲突,解决方法:
在项目主目录下的gradle.properties中添加以下代码

android.enableJetifier=true
android.useAndroidX=true

28.  隐式intent至少包含"android.intent.category.DEFAULT"(对应CATEGORY_DEFAULT常量)

29. viewPager#registerOnPageChangeCallback 
    ViewPager2.OnPageChangeCallback 
    onPageSelected:滑屏/点击Tab都会走到这
    onPageScrollStateChanged:只有滑屏才会走到这

30. ViewPage放fragment ,onCreateView方法没有被执行:解决方法 设置ViewPager的setOffscreenPageLimit

31. Android recyclerView每次刷新数据后都会定位在第一条_奋斗的小欣-CSDN博客

32.  CopyOnWriteArrayList 和 CopyOnWriteArraySet

java.util.ConcurrentModificationException
com.google.gson.internal.bind.CollectionTypeAdapterFactory$Adapter.write(CollectionTypeAdapterFactory.java:96)
解决方案
该异常表示迭代器迭代过程中,迭代的对象发生了改变,如数据项增加或删除。
[解决方案]:由于迭代对象不是线程安全,在迭代的过程中,会检查modCount是否和初始modCount即expectedModCount一致,如果不一致,则认为数据有变化,迭代终止并抛出异常。常出现的场景是,两个线程同时对集合进行操作,线程1对集合进行遍历,而线程2对集合进行增加、删除操作,此时将会发生 ConcurrentModificationException 异常。
具体方法:多线程访问时要增加同步锁,或者建议使用线程安全的集合:
1. 使用 ConcurrentHashMap 替换 HashMap,CopyOnWriteArrayList 替换 ArrayList, CopyOnWriteArraySet 替代 HashSet;
2. 或者使用使用Vector替换ArrayList,Vector是线程安全的。Vector的缺点:大量数据操作时,由于线程安全,性能比ArrayList低.

33.  最后一定会释放锁的操作
lock.lock();  // 加锁
try {
    Object[] elements = getArray();
    int len = elements.length;
    Object[] newElements = Arrays.copyOf(elements, len + 1);  // 拷贝新数组
    newElements[len] = e;
    setArray(newElements);
    return true;
} finally {
    lock.unlock();  // 释放锁
}

34. 集合的去重、求交集等: removeAll / addAll / retainAll

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值