Android开发总结

  1. 改变适配器Adapter内容时不要在后台线程中,必须在UI线程中处理,这点可以通过Handler传出来解决。
  2. 尝试Adapter的notifyDataSetChanged()方法,当然主要看你代码的具体情况。
  3. ActivityGroup对子A的管理是通过Map的方式来管理的,在启动子Activity时,对每个子Activity都分配了一个ID号。这种映射的机制使得我们可以通过ID来获取到子A的实例。当遇到
    AlertDialog.Builder builder = new Builder(this);
    不显示对话框时,使用
    AlertDialog.Builder builder = new Builder(this.getParent());
    代替,有可能会解决问题。
  4. Activity、Service实例化时就是一个Loop线程,同时具有本身的MessageQueue,因此可以在其内部定义
    Handler handler = new Handler();

  5. 代码中特殊的注释技术——TODO、FIXME和XXX的用处
    TODO: + 说明

    如果代码中有该标识,说明在标识处有功能代码待编写,待实现的功能在说明中会简略说明。
    FIXME: + 说明
    如果代码中有该标识,说明识处代码需要修正,甚至代码是错误的,不能工作,需要修复,如何修正会在说明中简略说明。
    XXX: + 说明
    如果代码中有该标识,说明识处代码虽然实现了功能,但是实现的方法有待商榷,希望将来能改进,要改进的地方会在说明中简略说明。
  6. Java的serialization提供了一种持久化对象实例的机制。当持久化对象时,可能有一个特殊的对象数据成员,我们不想用serialization机制来保存它。为了在一个特定对象的一个域上关闭serialization,可以在这个域前加上关键字transient。当一个对象被序列化的时候,transient型变量的值不包括在序列化的表示中,然而非transient型的变量是被包括进去的。
  7. 非常惭愧,现在才发现try{}catch(Exception e){e.printStackTrace();},catch到Exception之后的代码还有可能执行。
  8. 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>
  9. // 当向listview中加入headerview或者footviwer时,调用ListView的setAdapter
    // 方法会将adapter转化为headerviewlistadapter
    HeaderViewListAdapter listAdapter = (HeaderViewListAdapter) listView
    .getAdapter();
    ((BlogStatusAdapter) listAdapter.getWrappedAdapter())
    .refresh(refreshAlls);

你可能感兴趣的:(Android开发)