2015-07-20 75 views
5

我试过一些非常简单的测试片段。但ICEPICK似乎并没有被保存在outState束字符串测试值...Icepick被打破了吗?

public class MyFragment extends Fragment { 
    @Icicle String test; 

    @Override 
    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     Icepick.restoreInstanceState(this,savedInstanceState); 
    } 

    @Override 
    public View onCreateView(LayoutInflater inflater, ViewGroup container, 
          Bundle savedInstanceState) { 
     // Inflate the layout for this fragment 
     View view = inflater.inflate(R.layout.fragment_settings, container, false); 
     Log.d(TAG,"restored value of test="+test); 
     return view; 
    } 

    @Override 
    public void onSaveInstanceState(Bundle outState) { 
     test="I have a value"; 
     super.onSaveInstanceState(outState); 
     Icepick.saveInstanceState(this,outState); 
     Log.d(TAG, "test="+test); 
    } 

我gradle这个编译如下:

apply plugin: 'com.android.application' 
apply plugin: 'com.neenbedankt.android-apt' 

android { 
    compileSdkVersion 21 
    buildToolsVersion "21.1.2" 

    defaultConfig { 
     applicationId "com.my31daychallenge.mysleepchallenge" 
     minSdkVersion 15 
     targetSdkVersion 21 
     versionCode 1 
     versionName "1.0" 
    } 
    buildTypes { 
     release { 
      minifyEnabled false 
      proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' 
     } 
    } 
} 

dependencies { 
    compile fileTree(dir: 'libs', include: ['*.jar']) 
    compile 'com.android.support:appcompat-v7:22.2.0' 
    compile 'com.android.support:design:22.2.0' 
    compile 'com.jakewharton.threetenabp:threetenabp:1.0.1' 
    apt 'com.bluelinelabs:logansquare-compiler:1.1.0' 
    compile 'com.bluelinelabs:logansquare:1.1.0' 
    compile 'com.jakewharton:butterknife:7.0.1' 
    compile 'frankiesardo:icepick:3.0.0' 
    provided 'frankiesardo:icepick-processor:3.0.0' 
} 

注意,我试过的最新版本ICEPICK的3.0.2和3.0.3-SNAPSHOT,他们都没有工作,所以我想用同一个结果的早期版本。

也:

// Top-level build file where you can add configuration options common to all sub-projects/modules. 

buildscript { 
    repositories { 
     jcenter() 
    } 
    dependencies { 
     classpath 'com.android.tools.build:gradle:1.2.3' 
     classpath 'com.neenbedankt.gradle.plugins:android-apt:1.4' 

     // NOTE: Do not place your application dependencies here; they belong 
     // in the individual module build.gradle files 
    } 
} 

allprojects { 
    repositories { 
     jcenter() 
     maven {url "https://clojars.org/repo/"} 
    } 
} 

我缺少什么?

+0

你还看到这个吗?我在库3.1.0上遇到同样的问题。 – fractalwrench

回答

0

把你

Icepick.restoreInstanceState(this, savedInstanceState); 
onCreateView()

(而不是在onCreate