0

我想設置應用主題的共享首選項 MainActivity-> Settings Activity - >主題片段和主題片段中。我點擊時顯示背景圖片它會設置位置和位置將被活動接收設置圖像視圖,但事情是當我點擊碎片圖像時,它正在採取新的值,但在設置片段中,我無法獲得更新的值。但在主要活動是越來越更新,但是當我從主活動設置的活動是得到更新。這回來的是,我想如何更新共享首選項數據

@Override 
protected void onResume() { 
    super.onResume(); 
    SharedPreferences settings = getSharedPreferences("YOUR_PREF_NAME", 0); 
    int snowDensity = settings.getInt("SNOW_DENSITY", 0); 


    Glide.with(Settings.this).load(img[snowDensity]) 
      .thumbnail(1f) 
      .fitCenter() 
      .diskCacheStrategy(DiskCacheStrategy.SOURCE) 
      .into(imageView); 
} 

這樣的代碼,我設置的共享偏好

private class MyPagerAdapter extends PagerAdapter { 
    private int img[] = {R.drawable.img1, R.drawable.img2, R.drawable.img3, R.drawable.img4, R.drawable.img5, R.drawable.img6 
    }; 

    @Override 
    public Object instantiateItem(ViewGroup container, final int position) { 
     ImageView view = new ImageView(getActivity()); 

     Glide.with(getActivity()).load(img[position]) 
       .thumbnail(1f) 
       .fitCenter() 
       .error(R.drawable.music) 
       .diskCacheStrategy(DiskCacheStrategy.SOURCE) 
       .into(view); 
     view.setOnClickListener(new View.OnClickListener() { 
      @Override 
      public void onClick(View view) { 
       Toast.makeText(getActivity().getApplicationContext(), "Ringtone Set" + position, Toast.LENGTH_SHORT).show(); 
       SharedPreferences settings = getActivity().getSharedPreferences("YOUR_PREF_NAME", 0); 
       SharedPreferences.Editor editor = settings.edit(); 
       editor.putInt("SNOW_DENSITY", position); 
       editor.commit(); 
      } 
     }); 
     container.addView(view); 
     return view; 
    } 

    @Override 
    public void destroyItem(ViewGroup container, int position, Object object) { 
     container.removeView((View) object); 
    } 

    @Override 
    public int getCount() { 
     return 6; 
    } 

    @Override 
    public boolean isViewFromObject(View view, Object object) { 
     return (view == object); 
    } 
} 

是否有任何其他方式來更新數據。 我如何期待它的工作。我顯示在這種查看尋呼機像這樣enter image description here當用戶點擊按鈕它更新設置活動enter image description here但當我按下後退按鈕從片段的背景沒有得到更新無論是共享首選值。

+0

共享您用於在sharedpreferences中存儲數據的代碼 –

+0

我假設'「YOUR_PREF_NAME」'是一個字符串常量,不應該引用 –

+0

這個「YOUR_PREF_NAME」沒有問題,它會正常工作,getSharedPreferences方法只需要一個字符串名稱來製作首選項文件 –

回答

0

使用editor.commit()立即保存。 commit()同步寫入數據,apply()調度要異步寫入的數據

+0

我試過這個兄弟,我試圖把這個在每個活動生命週期方法,然後只有我問在堆棧 – SAVVY

+0

從哪裏開始你的設置活動(你共享的第二個屏幕)?它不是從查看尋呼機項目點擊監聽器 – Praveen

+0

沒有先生視圖尋呼機只是設置共享首選項,我打開從主要活動的設置活動或從他們的片段按回來按鈕 – SAVVY