- 改变适配器Adapter内容时不要在后台线程中,必须在UI线程中处理,这点可以通过Handler传出来解决。
- 尝试Adapter的notifyDataSetChanged()方法,当然主要看你代码的具体情况。
- ActivityGroup对子A的管理是通过Map的方式来管理的,在启动子Activity时,对每个子Activity都分配了一个ID号。这种映射的机制使得我们可以通过ID来获取到子A的实例。当遇到
不显示对话框时,使用AlertDialog.Builder builder = new Builder(this);
代替,有可能会解决问题。AlertDialog.Builder builder = new Builder(this.getParent());
- Activity、Service实例化时就是一个Loop线程,同时具有本身的MessageQueue,因此可以在其内部定义
Handler handler = new Handler();
- 代码中特殊的注释技术——TODO、FIXME和XXX的用处
TODO: + 说明:
如果代码中有该标识,说明在标识处有功能代码待编写,待实现的功能在说明中会简略说明。
FIXME: + 说明:
如果代码中有该标识,说明标识处代码需要修正,甚至代码是错误的,不能工作,需要修复,如何修正会在说明中简略说明。
XXX: + 说明:
如果代码中有该标识,说明标识处代码虽然实现了功能,但是实现的方法有待商榷,希望将来能改进,要改进的地方会在说明中简略说明。 - Java的serialization提供了一种持久化对象实例的机制。当持久化对象时,可能有一个特殊的对象数据成员,我们不想用serialization机制来保存它。为了在一个特定对象的一个域上关闭serialization,可以在这个域前加上关键字transient。当一个对象被序列化的时候,transient型变量的值不包括在序列化的表示中,然而非transient型的变量是被包括进去的。
- 非常惭愧,现在才发现try{}catch(Exception e){e.printStackTrace();},catch到Exception之后的代码还有可能执行。
- padding是控件内部的距离
margin是控件间的距离<Button android:text="hello" android:layout_width="250dip" android:layout_height="100dip" android:paddingTop="50dip" 字体距离button上边距50dip android:layout_marginTop="100dip"> 控件距离上一个控件100dip </Button>
- // 当向listview中加入headerview或者footviwer时,调用ListView的setAdapter
// 方法会将adapter转化为headerviewlistadapterHeaderViewListAdapter listAdapter = (HeaderViewListAdapter) listView.getAdapter(); ((BlogStatusAdapter) listAdapter.getWrappedAdapter()).refresh(refreshAlls);
- /** 将中文设置成粗体 ,英文直接使用android:textStyle="blod"即可*/
SDK中这样描述的:TextPaint tp = mTextView.getPaint(); tp.setFakeBoldText(true);
TextPaint is an extension of Paint that leaves room for some extra data used during text measuring and drawing.
绘画出文字时添加一些额外的信息 - 增加ImageView控件时会显示黄色的下划线,出现Missing contentDescription attribute on image的问题
主要是因为在没有使用TextView之类的文本控件,这里添加 android:contentDescription="@string/app_name即可 - 有时候LinearLayout无法实现的布局,对于RelativeLayout来说迎刃而解。慎用LinearLayout,多用RelativeLayout。