2015-07-20 19 views
5

मैंने एक टुकड़े के साथ कुछ बहुत ही सरल परीक्षणों की कोशिश की है। लेकिन 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 निर्माण इस तरह दिखता है outState बंडल में स्ट्रिंग परीक्षण का मूल्य बचत हो प्रतीत नहीं होता है ...:

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-स्नैपशॉट, उनमें से कोई भी काम नहीं करता, इसलिए मैंने एक ही परिणाम के साथ पहले संस्करण का उपयोग करने का विचार किया।

और यह भी:

// 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

उत्तर

3

ठीक है, मैं सचमुच 5 मिनट पहले IcePick पुस्तकालय को देखकर इतना रखना है कि मन में अगर यह एक बेवकूफ जवाब :)

इस के रूप में प्रतिबद्ध है शुरू कर दिया https://github.com/frankiesardo/icepick/commit/f60b4b9c0307be208178381661ee13b958eda531 यह लग रहा है @State के बजाय इस्तेमाल किया जाना चाहिए की तरह @Icicle। क्या यह आपकी समस्या का समाधान करता है?

0

इस लाइन provided 'frankiesardo:icepick-processor:3.0.0' परिवर्तन providedapt करने के लिए अपने

Icepick.restoreInstanceState(this, savedInstanceState); 
onCreateView() में

(बजाय onCreate में)

संबंधित मुद्दे