创建github技术博客技术攻略
http://blog.csdn.net/renfufei/article/details/37725057/
搭建一个免费的,无限流量的Blog----github Pages和Jekyll入门
http://www.ruanyifeng.com/blog/2012/08/blogging_with_jekyll.html
http://blog.csdn.net/on_1y/article/details/19259435
github上README.md教程
http://blog.csdn.net/kaitiren/article/details/38513715
在线网页格式编辑
package in.srain.cube.views.ptr; import in.srain.cube.views.ptr.indicator.PtrIndicator; /**
* A single linked list to wrap PtrUIHandler
*/
class PtrUIHandlerHolder implements PtrUIHandler { private PtrUIHandler mHandler;
private PtrUIHandlerHolder mNext; private boolean contains(PtrUIHandler handler) {
return mHandler != null && mHandler == handler;
} private PtrUIHandlerHolder() { } public boolean hasHandler() {
return mHandler != null;
} private PtrUIHandler getHandler() {
return mHandler;
} public static void addHandler(PtrUIHandlerHolder head, PtrUIHandler handler) { if (null == handler) {
return;
}
if (head == null) {
return;
}
if (null == head.mHandler) {
head.mHandler = handler;
return;
} PtrUIHandlerHolder current = head;
for (; ; current = current.mNext) { // duplicated
if (current.contains(handler)) {
return;
}
if (current.mNext == null) {
break;
}
} PtrUIHandlerHolder newHolder = new PtrUIHandlerHolder();
newHolder.mHandler = handler;
current.mNext = newHolder;
} public static PtrUIHandlerHolder create() {
return new PtrUIHandlerHolder();
} public static PtrUIHandlerHolder removeHandler(PtrUIHandlerHolder head, PtrUIHandler handler) {
if (head == null || handler == null || null == head.mHandler) {
return head;
} PtrUIHandlerHolder current = head;
PtrUIHandlerHolder pre = null;
do { // delete current: link pre to next, unlink next from current;
// pre will no change, current move to next element;
if (current.contains(handler)) { // current is head
if (pre == null) { head = current.mNext;
current.mNext = null; current = head;
} else { pre.mNext = current.mNext;
current.mNext = null;
current = pre.mNext;
}
} else {
pre = current;
current = current.mNext;
} } while (current != null); if (head == null) {
head = new PtrUIHandlerHolder();
}
return head;
} @Override
public void onUIReset(PtrFrameLayout frame) {
PtrUIHandlerHolder current = this;
do {
final PtrUIHandler handler = current.getHandler();
if (null != handler) {
handler.onUIReset(frame);
}
} while ((current = current.mNext) != null);
} @Override
public void onUIRefreshPrepare(PtrFrameLayout frame) {
if (!hasHandler()) {
return;
}
PtrUIHandlerHolder current = this;
do {
final PtrUIHandler handler = current.getHandler();
if (null != handler) {
handler.onUIRefreshPrepare(frame);
}
} while ((current = current.mNext) != null);
} @Override
public void onUIRefreshBegin(PtrFrameLayout frame) {
PtrUIHandlerHolder current = this;
do {
final PtrUIHandler handler = current.getHandler();
if (null != handler) {
handler.onUIRefreshBegin(frame);
}
} while ((current = current.mNext) != null);
} @Override
public void onUIRefreshComplete(PtrFrameLayout frame) {
PtrUIHandlerHolder current = this;
do {
final PtrUIHandler handler = current.getHandler();
if (null != handler) {
handler.onUIRefreshComplete(frame);
}
} while ((current = current.mNext) != null);
} @Override
public void onUIPositionChange(PtrFrameLayout frame, boolean isUnderTouch, byte status, PtrIndicator ptrIndicator) {
PtrUIHandlerHolder current = this;
do {
final PtrUIHandler handler = current.getHandler();
if (null != handler) {
handler.onUIPositionChange(frame, isUnderTouch, status, ptrIndicator);
}
} while ((current = current.mNext) != null);
}
}