Skip to content

Instantly share code, notes, and snippets.

View twiceyuan's full-sized avatar

twiceYuan twiceyuan

View GitHub Profile
@twiceyuan
twiceyuan / gist:34729524aad4d2c365f2
Created October 7, 2015 03:32
Android Studio on El Capitan crash log
Process: studio [54843]
Path: /Applications/Android Studio.app/Contents/MacOS/studio
Identifier: com.google.android.studio
Version: 1.4 (AI-141.2288178)
Code Type: X86-64 (Native)
Parent Process: ??? [1]
Responsible: studio [54843]
User ID: 501
Date/Time: 2015-10-07 11:28:52.666 +0800
@twiceyuan
twiceyuan / gradle
Last active October 29, 2018 06:26
[PlaceHolder、Manifest 替换] Gradle 里 Manifest 替换、BuildConfig 常量生成 #Android #Gradle
debug {
manifestPlaceholders = [(manifest key name): (local properties key name)]
buildConfigField "String", "ARG_NAME", LOCAL_PROPERTIES_NAME
}
@twiceyuan
twiceyuan / gist:df1981436c744a78fc12
Created November 7, 2015 09:51
当你想让 CheckedTextView 的文字显示在右边时……
直接用 CheckBox 就好,它妹的本来就可以设置 text 属性。
不要用什么 drawableLeft/drawableStart check 框都不会改变状态 😂😂
@twiceyuan
twiceyuan / tips.md
Last active October 29, 2018 06:26
[自定义 View 的属性传递注意项] Android custom view deliver variable tips #Android
  1. 定义 styleable 时,新定义的属性需要包含 format 字段,原有的属性不能包括该字段,例如
<declare-styleable name="ExampleView">
  <attr name="maxChar" format="integer"/>
  <attr name="android:textSize"/>
</declare-styleable>
  1. 文字大小或者其他 Dimension 类的属性,在设定时可以按照原有的格式标注 sp, px, dp 等,获取的时候建议统一转换为 px,并通过设定单位的方式来传递给需要的对象。例如设定文字大小,有 styleable:
@twiceyuan
twiceyuan / CheckableLayout.java
Last active January 16, 2017 07:00
可以保存 Check 状态的 LinearLayout
import android.content.Context;
import android.util.AttributeSet;
import android.view.View;
import android.view.ViewGroup;
import android.widget.Checkable;
import android.widget.LinearLayout;
/**
* This is a simple wrapper for {@link android.widget.LinearLayout} that implements the {@link android.widget.Checkable}
* interface by keeping an internal 'checked' state flag.
@twiceyuan
twiceyuan / note.md
Last active December 15, 2015 10:30
接收来自 BroadcastReceiver 的 intent 中的 extra Receive intent from BroadcastReceiver

通知发出的 Intent 设置 Flag:

Intent.FLAG_ACTIVITY_SINGLE_TOP | Intent.FLAG_ACTIVITY_CLEAR_TOP

重写 Activity 中的 onNewIntent(Intent newintent) 方法

@twiceyuan
twiceyuan / Logger.java
Last active December 15, 2015 09:50
Android Log 工具类,可以省略 Tag 的填写,自动获得代码执行所在的类
/**
* Created by twiceYuan on 8/17/15.
* <p>
* Log 的简化方法集
* 用途:省略 TAG,默认使用调用该方法的代码所在的类名作为 TAG
*/
public final class Logger {
private Logger() {
}
@twiceyuan
twiceyuan / AttrClone.java
Last active December 15, 2015 09:43
拷贝两个类中相同属性名的方法
public static void copy(Object from, Object to) {
Field[] fromFields = from.getClass().getDeclaredFields();
Field[] toFields = to.getClass().getDeclaredFields();
Class toClass = to.getClass();
Set<String> toFieldSet = Stream.of(toFields).map(Field::getName).collect(Collectors.toSet());
for (Field fromField : fromFields) {
// 判断来源属性中是否含有目标属性
if (toFieldSet.contains(fromField.getName())) {
@twiceyuan
twiceyuan / Configs.java
Created December 15, 2015 14:07
SharedPreference 设置类封装
public class Configs {
private static final String sName = "settings";
public enum Key {
// 这里放置设置项的 Key
}
public static Set<String> getSetting(Key key, Set<String> defaultValue) {
SharedPreferences preferences = App.getInstance().getSharedPreferences(sName, Context.MODE_PRIVATE);
@twiceyuan
twiceyuan / AFNetworking.m
Created December 23, 2015 12:52 — forked from dutran90/AFNetworking
AFNetworking
//GET
+(void) checkLoginWithUsername:(NSString*)username andPassword:(NSString*)password InBackground:(void(^)(BOOL success)) completionHandler{
AFHTTPRequestOperationManager *manager = [AFHTTPRequestOperationManager manager];
NSDictionary *para = [NSDictionary dictionaryWithObjectsAndKeys:username, @"email", password, @"password", nil];
[manager setRequestSerializer:[AFHTTPRequestSerializer serializer]];
[manager.requestSerializer setAuthorizationHeaderFieldWithUsername:@"admin" password:@"admin"];
manager.responseSerializer.acceptableContentTypes = [manager.responseSerializer.acceptableContentTypes setByAddingObject:@"text/html"];
[manager GET:@"http://lottofy.gleblu.com/ws/login.php" parameters:para success:^(AFHTTPRequestOperation *operation, id responseObject) {
if ([[responseObject objectForKey:@"success"] doubleValue] == 0) {
completionHandler(NO);