android.os.Parcelable文档自译

android.os.Parcelable接口的已知间接子类很多,这里就不列举了:

Class Overview

Interface for classes whose instances can be written to and restored from a 
Parcel. Classes implementing the Parcelable interface must also have a static 
field called CREATOR, which is an object implementing the Parcelable.Creator 
interface.

写给我两年零三个月的大学生活

感觉现在自己很浮躁呢,静下心来真心不容易啊。感觉自己大学两年多过的有点稀里糊涂的。现在感觉终于静下来了,就写点什么吧,权当是对过往的总结和对未来的展望吧。

回想自刚踏入大学的那个一无所知的懵懂少年,到现在心沉如水的油条,辩护不可谓不大啊。大一第一学期的时候,自己真心一无所知,也没人指点。所以就兴冲冲的想要好好体验一下象牙塔的生活,于是学生会,团委,辩论队。。。傻傻的参加了一大堆社团面试,出乎意外的竟然通过了。于是,整日奔波于各个社团之间。就这样,一学期过去了。现在回想起来,我大学的第一学期当真是过的苍白无力啊。

Android saveInstanceState

以前一直对onCreate(Bundle saveInstanceState)的参数不知其意,今天特地研究了一下,记录于此。

与此相关的有两个method:

 @Override
public void onSaveInstanceState(Bundle savedInstanceState) {
    // Save away the original text, so we still have it if the activity
    // needs to be killed while paused.
    savedInstanceState.putInt("IntTest", 0);
    savedInstanceState.putString("StrTest", "savedInstanceState test");
    super.onSaveInstanceState(savedInstanceState);
    Log.e(TAG, "使用了我的onSaveInstanceState");
}

@Override
public void onRestoreInstanceState(Bundle savedInstanceState) {
    super.onRestoreInstanceState(savedInstanceState);
    int IntTest = savedInstanceState.getInt("IntTest");
    String StrTest = savedInstanceState.getString("StrTest");
    Log.e(TAG, "onRestoreInstanceState+IntTest="+IntTest+"+StrTest="+StrTest);
}

android View 属性详解

android.View.View(即View)类是以矩形的方式显示在屏幕上,View是用户界面控件的基础。View的继承层次关系如下图:

Alt text

可以看到所有的界面控件都是View的子类。简单证实一下,每当你用findViewByIds(R.id.xx)时总要将其强转,因为该方法返回的是一个View实例,有木有!!!其中不得不提View的subClass ViewGroup。Android系统中的所有UI类都是建立在View和ViewGroup这两个类的基础上的。所有View的子类成为”Widget”,所有ViewGroup的子类成为”Layout”。View和ViewGroup之间采用了组合设计模式,可以使得“部分-整体”同等对待。ViewGroup作为布局容器类的最上层,布局容器里面又可以有View和ViewGroup。通过这种方式,我们获得了UI界面的组合方式。

android studio module添加最新的com.android.support:appcompat-v7:21.0.0依赖报错

我的开发平台是Mac,测试机是MX3(API 19 android 4.4.4),我不确定其他平台是否出现该问题,所以提前说明一下,免得误人子弟。

今天再使用自定义ActionBar的时候,出现了一个很奇葩的错误,就是我为自己的module添加了最新的
com.android.support:appcompat-v7:21.0.0依赖后,在Activity中使用

final ActionBar actionBar = getActionBar();
actionBar.show();

android listview item点击展开

最近做项目真是头疼呢?之前想用ListViewAnnotation来着,就是可以实现类似于android 通知栏
滑动删除的效果。好像是一位大牛自己一个人写的吧。我在这里首先向他致敬。不过,话说回来,实现
原理也是比较易于理解的,就是检测你的滑动距离以及速度,再作出判断,进行操作。具体大家参考
下Google keep的两种列表模式下滑动删除的操作就理解类。

非常不幸的事,我再布局中用了fragment和biewpager,所以产生了手势冲突,我为此改写了librar
y里的手势操作检测方法,最后勉强改出来的。但是!!!!效果实在惨不忍睹,只好作罢,最后,思来
想去,我决定使用listview item点击展开来实现我想要的效果。好吧,废话说了很多,终于要进入
正题了。

android sqlite database

好吧,现在来看一下在android里面使用sqlite数据库的一些基本操作吧。

对于大多数app而言对数据库的要求很简单,无非CURD,仅此而已。而我个人比较喜欢将所要使用的相应数据
表封装成javabean再进行操作,这样会显得逻辑比较清晰。

首先,我们写一个Entity: