安卓:保存查看传呼机状态传呼机、状态

由网友(autism(孤独症))分享简介:我想保存视图寻呼机的状态,以避免对方向变化再次产生碎片。任何建议是高度AP preciated。I am trying to save view pager state, in order to avoid creating fragments once again on orientation change. An...

我想保存视图寻呼机的状态,以避免对方向变化再次产生碎片。任何建议是高度AP preciated。

I am trying to save view pager state, in order to avoid creating fragments once again on orientation change. Any suggestions is highly appreciated.

我想下面的东西,但不知道它是如何工作的?

I tried below stuff, but not sure how it will work...

    int pagerId = 0;

        mPager = (ViewPager) findViewById(R.id.pager);
        DialerPagerAdapter viewpageradapter = new DialerPagerAdapter(fm);
        if (savedInstanceState != null) {
            if (savedInstanceState.getInt("tab") != -1) {
               mPager.setCurrentItem(savedInstanceState.getInt("tab"));
                pagerId=savedInstanceState.getInt("pagerState");
            }
        }
        mPager.setOnPageChangeListener(ViewPagerListener);
        if (pagerId != -1 ){
            mPager.setId(pagerId);
        }else{
            pagerId=mPager.getId();
        }
        mPager.setAdapter(viewpageradapter);

在saveInstanceState我做下面的东西

in saveInstanceState I am doing below stuff

outState.putInt("pagerState" , mPager.getId() );

谢谢 Venkatraman

Thanks Venkatraman

推荐答案

实例共享preferences节约串并检​​索它再次在任何地方你的应用程序。

Example saving string in shared preferences and retrieve it again anywhere in your app.

public class PreferencesData {

    public static void saveString(Context context, String key, String value) {
        SharedPreferences sharedPrefs = PreferenceManager
                .getDefaultSharedPreferences(context);
        sharedPrefs.edit().putString(key, value).commit();
    }

    public static String getString(Context context, String key, String defaultValue) {
        SharedPreferences sharedPrefs = PreferenceManager
                .getDefaultSharedPreferences(context);
        return sharedPrefs.getString(key, defaultValue);
    }
}

用法:

PreferencesData.saveString(context, "mynote", "Sherlock is weird");
// retrieve
String note = PreferencesData.getString(context, "mynote", "");

使用这个节省暂停字符串,并重新创建它的onCreate,或者在任何你需要的信息

Use this to save the string on pause, and recreate it in onCreate, or where ever you need the information

同样的方法可以容易地用于其他类型的简单

The same method can easily be used for other simple types.

有关你的使用情况:

public class PreferencesData {

    public static void saveInt(Context context, String key, int value) {
        SharedPreferences sharedPrefs = PreferenceManager
                .getDefaultSharedPreferences(context);
        sharedPrefs.edit().putInt(key, value).commit();
    }

    public static int getInt(Context context, String key, int defaultValue) {
        SharedPreferences sharedPrefs = PreferenceManager
                .getDefaultSharedPreferences(context);
        return sharedPrefs.getInt(key, defaultValue);
    }
}

在你的code:

    mPager = (ViewPager) findViewById(R.id.pager);
    DialerPagerAdapter viewpageradapter = new DialerPagerAdapter(fm);

    if (savedInstanceState != null) {
        if (savedInstanceState.getInt("tab") != -1) {
           // this could also be saved with PreferencesData
           // but if you want the app to start at the first
           // tab when device is restarted or recreated, this is fine.
           mPager.setCurrentItem(savedInstanceState.getInt("tab")); 
        }
    }

    // defaults to 0 if first startup after install
    int pagerId = PreferencesData.getInt(this, "pagerId", 0);
    mPager.setId(pagerId);

    mPager.setOnPageChangeListener(ViewPagerListener);
    mPager.setAdapter(viewpageradapter);

和中的onPause()

And in onPause()

PreferencesData.saveInt(this, "pagerId", mPager.getId());
阅读全文

相关推荐

最新文章