在 Ubuntu 中安装 Jenkins

Jenkins 是目前流行的 CI 平台,终于得闲,便想到试用看看,略作笔记。

官方文档: https://wiki.jenkins-ci.org/display/JENKINS/Installing+Jenkins+on+Ubuntu

Jenkins 依赖于 JDK 和 JRE,可以通过以下代码安装。

安装完成后,继续安装 Jenkins 本身。

Jenkins 的默认端口为 8080,在安装完成后即可使用。

 

Android 中设置 EditText 的输入类型

在 Android 中,EditText 可支持句首字母大写、词首字母大写、纯数字等数十种专门优化的输入类型。有两种方式指定输入类型。

方式一,在布局资源文件中为 EditText 控件添加属性,如:

其中,textCapWords 表示在可能的情况下,为每个句子的首字母大写。
textCapSentences 属性的值为 0x00004001 ,textCapWords 则为 0x00002001,它们以掩码的形式制定,这些属性可通过 | 运算符组合。

方式二,在代码中动态添加或更改输入类型,如:

更多可选的输入类型请参见官方文档:
http://developer.android.com/intl/ja/reference/android/widget/TextView.html#attr_android%3ainputType

Android 中在代码运行时为 Activity 动态设置主题

代码与范例:

说明:为使该方法生效,需要在 setContentView(…) 与 super.oncreate() 之前调用。系统内置主题可以通过 android.R.Style 查找。部分主题对 Android API level 有要求,例如,material 系主题要求 API level 至少为19。

Android 中创建弹出式菜单 PopupMenu

代码与范例:

说明:PopupMenu 是 Android API Level11 引入的新特性,可以在屏幕上渲染一个弹出式的菜单窗口,用于显示一些常用的操作。

Android 中为 EditText 提供平滑滚动功能

代码与范例:

说明:Android 中的 EditText 是一个相当复杂的控件,与 TextView 不同,它并不支持平滑滚动及相关的视觉反馈,不过,我们可以将其置于某个 ScrollView 内,以实现类似的效果。需要注意的是,此时由于尺寸可变, EditText 的高度和宽度即使设为 fill_parent 也不会起效,可通过 ScrollView 添加 android:fillViewport=”true” 属性解决。

Android 中 java.lang.IllegalArgumentException: pointerIndex out of range 异常的处理方法

在记事帐的应用后台收到了一条罕见的崩溃报告:

经调查,发现这是 Android 的 ViewPager 的一个 bug,偶尔会在用户执行多点触控操作时发生。直到至少 Android 4.4,该问题依然存在。
解决方案也很简单,覆写 ViewPager 的 onTouchEvent 与 onInterceptTouchEvent 方法,catch 该异常即可,如下所示:

Android 中基于 PendingIntent 与 AlarmManager 的定时广播

代码与范例:

说明:上述代码将创建并注册一个定时发出的广播,广播接收器 AlarmReceiver 将接收该广播。广播接收器需要事先在 Manifest 文件中注册,如下所示。

此外,如果要为 AlarmManager 设置间隔,需要注意的是,参数(单位为毫秒)大小有一定的限制,且 AlarmManager 无法在系统关机后保留。

Android 中为 TextView 的文本添加下划线

代码与范例:

说明:我们可以通过 SpannableString、TextView 的 setPaintFlags(),或者 Html.fromHtml() 这三种方式为 TextView 的文本添加下划线。继承于 TextView 的控件也支持这些操作。

Java 中线程的停止与启动

代码与范例:

说明:出于线程安全的考虑,Java 禁止使用 stop() 来结束线程。用于启动线程的 start() 只能执行一次,在执行 run() 之后即使再次调用 start(),run() 也不会被调用,必须重新调用 new()。而且根据虚拟机的具体实现,start() 与 run() 之间也可能有一定的延迟。

参考资料

Java 中将数字转换为带零字符串的方法

代码与范例:

说明:JDK1.5 以后开始支持该方法。可以将数字转换为指定格式的字符串,并在数字前补零至足够位数。其中,百分号后为字符串长度。