iT邦幫忙

0

想請問SharedPreferences在android如何再非Activity類別使用

  • 分享至 

  • xImage

各位大大好,
想請教一下,用SharedPreferences可以幫忙儲存頁面中edittext的資料
但放在沒有onCreate( ),只有class的地方都會變成紅字....

//寫入資料
es1=(EditText)findViewById(R.id.es1);
final String na = es1.getText().toString();
SharedPreferences record = getSharedPreferences("record", MODE_PRIVATE);
                record.edit().putString("number", na).commit();
//讀取設定檔的資料
final String numberid=getSharedPreferences("record", MODE_PRIVATE)
                .getString("number", "");
 Log.v("log=",numberid);

能成功取用,但有些地方讀取getSharedPreferences會顯示紅色
https://ithelp.ithome.com.tw/upload/images/20200426/20125469EaVfjSYx2s.jpg
只有在有onCreate( )的頁面能正常使用
只有類別的頁面getSharedPreferences都會顯示成紅色
平常紅色都是在底線出現時Alt+Enter加入Import ,但
getSharedPreferences
Alt+Enter好像會直接新增新的class

圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

2 個回答

0
神威
iT邦研究生 4 級 ‧ 2020-04-27 10:44:09

以下方法可試試

MyClass myClass = new MyClass(this);
context.getSharedPreferences();

參考文章:
請點我

張俊毅 iT邦新手 5 級 ‧ 2020-04-29 14:28:17 檢舉

不是很了解,會盡力去理解看看

0
CWKSC
iT邦新手 4 級 ‧ 2020-04-29 15:16:07

getSharedPreferences() 調用需要 context

public class First{
    private Context context;
    public First(Context context){
        this.context = context;
    }
    private void logo(){
        /* ... */ = context.getSharedPreferences(/* ... */);
    }
}

我要發表回答

立即登入回答