removeallview确实会移除所有的view,但是在addview的时候还是会报remove first?
设置emptyview的时候 事先要判空,因为在当前页面切换其实会创建多个emptyview 你再去remove会还是存在,判空保证只有一个empty实例存在。
android:imeOptions="actionSearch"要生效必须设置 android:inputType="text"android:maxLines="1"
在addview之前 多考虑是否需要想removeview。addview或者remove都默认requestlayout invalidate
listview和recycleview都是有缓存机制的 而且相似 都是可见即可得 只不过listview需要手动配置而rv不需要,使用他们的getchildAt和findViewByPosition都会因为这个原因拿不到所有的view而返回null。解决办法:先理解两种条目view的原理及缓存机制。listview里用getview处理,这个方法是绑定数据到各子view,在里面能更新所有item的view。recycleview则在onBindViewHolder里,这个方法相当于listview的getVIew。这些条目view都使用缓存机制的原因很大程度上缓解了OOM。分页设计和这些view的缓存机制都在很大程度缓解出现OOM这种情况。
checkbox设置android:button="@null"可以屏蔽默认背景框editText设置父控件 的android:focusable="true"android:focusableInTouchMode="true"则初始不会弹出输入法
editText设置android:focusable="false"会让editText不能被改变
recyleview的item更新 如果是一个任务接着一个(比如删除之后再更新),尽量用notifyDataSetChanged,其他有可能会报Inconsistency detected. Invalid item positionrecyleview的子view进行状态更新也是可见才去真正更新。
在进行购物车页面的钱数统计的时候,最好的处理周期就是onWindowFocusChanged这个方法内。
checkbox的setcheck方法也会出发它的监听setOnCheckedChangeListener。
一般情况下的字符串拼接用+就行,内部也是用的StringBuilder的append来实现,会进行如果是循环大量字符串的连接一定要用append方法,因为会在循环体内部创建StringBuilder,这样会造成内存浪费。用StringBuilder进行append只会有一个StringBuilder对象。减少内存损耗。两者速度也相差很多。
android:isIndicator="true" 设置ratingbar不可点击
想在activity中finish另一些activity:1先把要finish的存起来public void addOrderActivity(Activity activity) { if (activity != null) { orderActivityList.add(activity); } }2然后集中finish public void finishOrderActivity() { for (Activity activity : orderActivityList) { if (activity != null) {activity.finish();}}}
特别注意setText(@StringRes int resid)方法 在用的时候尽量设置string char这样的字符类型。不然 android.content.res.Resources$NotFoundException: String resource ID #0xc8
要比较IMageVIew的背景图片是否相等:gouIv.setImageResource(R.drawable.def_yes_ic);gouIv.setTag(R.drawable.def_yes_ic);int id = (int) gouIv.getTag();先设置背景图片 settag 然后取得id 进行比较
listview和RecyclerView的getChildAt(int position) 只能获取可见的条目信息。解决办法 getChildAt(position-listview.getFirstVisiblePosition());RecyclerView推荐用View view =LayoutManager.findViewByPosition(2);
listview.performItemClick(listview.getChildAt(0), 0, listview.getItemIdAtPosition(0));在listview的item没有被点击过之前,这个listview.getChildAt(0)有可能是null的,也就意味着onItemClick(AdapterView<?> parent, View view, int position, long id)这个回调方法中的view是null,这个view代表着被点击的那个item view。
解决window被NavigationBar遮挡和widow被输入法顶起window.setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_ADJUST_RESIZE);
List = 排成一长队的小猪 Map = 放在一个个有房间号的屋子里面的一群小猪 Set = 一群小猪贴上号,然后赶到一个猪圈里Hashset 它不保证集合的迭代顺序;特别是它不保证该顺序恒久不变。LinkedHashSet定义了迭代顺序,即按照将元素插入到集合中的顺序(插入顺序)进行迭代。
edittext隐藏光标setCursorVisible
listview item不响应onitemclick原因:焦点被item里的子view夺去。解决:在item的父layout设置android:descendantFocusability="blocksDescendants"
ListString[] array = (String[]) mlist.toArray(); 异常这样写的话,编译运行时会报类型无法转换java.lang.ClassCastException的错误因为java中的强制类型转换是针对单个对象才有效果的,而List是多对象的集合,所以将整个List强制转换是不行的
EditText点击才获取焦点使得et一进页面先不获取焦点,点击则获取焦点调出输入法键盘。android:focusable="true"android:focusableInTouchMode="true"
执行打开相册或相机代码 onActivityResult null再打开相机或相册等需要配置一些指定参数的场景下,携带的自定义bundle数据在onActivityResult里面通过 Bundle bundle = data.getExtras();bundle是null的。不能进行自定义bundle传输。
iterator.next调用第二次的问题迭代器iterator每次调用next()获取当前cursor对应的值,都会移动curcor++,指向下一个。如果你想获取同一个位置的数据,切记不可两次连续调用next()去取。
view.post和handler.post view.post在主线程中有效。如在oncreate里view.post,调用getRelatedAttributeValue有效。在onAttachedToWindow中handler.post,调用getRelatedAttributeValue有效
RecyclerView在GridLayoutManager时,各item间可能会出现大小不一的间隙。尤其是左右之间。解决办法:把item的根布局设置为android:layout_width="match_parent"设置间距:class MarginDecoration extends RecyclerView.ItemDecoration { private int margin;  public MarginDecoration(Context context) { margin = PxUtils.dpToPx(10,context); } @Override public void getItemOffsets(Rect outRect, View view, RecyclerView parent, RecyclerView.State state) { outRect.set(margin, margin, margin, margin); } }  
application static值为空的情况android虚拟机不同于java se的虚拟机,static变量会被绑定在某个activity上,也就是说activity的消亡会让这个变量为空,其他地方使用的时候就是null。解决办法:可以存储在本地缓存 数据库都行,然后用的时候判空,为null就去本地或者数据库取出来。
float不能保证第八位的精确例如:String="997033.23"float v = Float.parseFloat(amount);可能会出现v="997033.25的情况。最多只能保证第七位的精确,所以超出的位数都不能保证值的精确度。
父类里面protected修饰符特别注意内部类父类里面的修饰符protected有可能会造成相同名字的类引用错误。同名引用如果不打算暴露,最好设置成private
animation动画不执行view.clearAnimation();//在开始动画前 执行这句 可解决动画不执行的问题
获取安装成功的apk包名在apk安装成功监听,Intent.ACTION_PACKAGE_ADDEDString pkg = intent.getDataString();//获取安装包名不是intent.getPackage();
Textview父类textview的上层父类是Viewtextview是button的上层父类。checkbox是一个button。

更多相关文章

  1. Android中ListView中使用CheckedTextView
  2. 解决Android创建AVD失败
  3. Android中一些实用的Tips
  4. android点击事件的传递机制
  5. Android(安卓)中状态栏(屏幕顶部)消息的显示 Notification
  6. android_定义多个Activity及跳转
  7. Wifi源码学习(Android5.1)之wifi optionItem
  8. Android(安卓)双击返回键退出应用
  9. 跟我学android-常用控件之 TextView

随机推荐

  1. Android(安卓)Binder概述
  2. Android教父高焕堂谈Android“开源”与“
  3. Android(安卓)系统中 gps Location Servi
  4. Android(安卓)APN的设置问题--进一步讨论
  5. Android几种常见 自定义Button样式
  6. 如何学习Android及如何利用android来赚钱
  7. Solution of issue: Android(安卓)soft k
  8. 同一功能在Android不同版本进行兼容的方
  9. Android热修复之AndFix
  10. 基于Qt for Android联想到调用Android(安