태그 보관물: sharedpreferences

sharedpreferences

Android에서 SharedPreferences를 사용하여 값을 저장, 가져 오기 및 편집하는 방법 [닫기]

시간 값을 저장하고 검색하고 편집해야합니다. 이 작업을 어떻게 수행 할 수 SharedPreferences있습니까?



답변

공유 환경 설정을 얻으려면 활동에서 다음 방법을 사용하십시오.

SharedPreferences prefs = this.getSharedPreferences(
      "com.example.app", Context.MODE_PRIVATE);

환경 설정을 읽으려면 :

String dateTimeKey = "com.example.app.datetime";

// use a default value using new Date()
long l = prefs.getLong(dateTimeKey, new Date().getTime()); 

환경 설정을 편집하고 저장하려면

Date dt = getSomeDate();
prefs.edit().putLong(dateTimeKey, dt.getTime()).apply();

android sdk의 샘플 디렉토리에는 공유 환경 설정을 검색하고 저장하는 예제가 포함되어 있습니다. 그것의 위치 :

<android-sdk-home>/samples/android-<platformversion>/ApiDemos directory

편집 ==>

나는 여기 commit()apply()여기에 차이를 쓰는 것이 중요하다는 것을 알았습니다 .

commit()true값이 성공적으로 저장되면을 반환 합니다 false. 값을 SharedPreferences에 동 기적으로 저장합니다 .

apply()2.3에 추가되었으며 성공 또는 실패에 대한 값을 반환하지 않습니다. 값을 SharedPreferences에 즉시 저장하지만 비동기 커밋을 시작합니다 . 자세한 내용은 여기 입니다.


답변

공유 환경 설정에 값을 저장하려면 다음을 수행하십시오.

SharedPreferences preferences = PreferenceManager.getDefaultSharedPreferences(this);
SharedPreferences.Editor editor = preferences.edit();
editor.putString("Name","Harneet");
editor.apply();

공유 환경 설정에서 값을 검색하려면 다음을 수행하십시오.

SharedPreferences preferences = PreferenceManager.getDefaultSharedPreferences(this);
String name = preferences.getString("Name", "");
if(!name.equalsIgnoreCase(""))
{
    name = name + "  Sethi";  /* Edit the value here*/
}

답변

에서 데이터 를 편집 하려면sharedpreference

 SharedPreferences.Editor editor = getPreferences(MODE_PRIVATE).edit();
 editor.putString("text", mSaved.getText().toString());
 editor.putInt("selection-start", mSaved.getSelectionStart());
 editor.putInt("selection-end", mSaved.getSelectionEnd());
 editor.apply();

에서 데이터 를 검색 하려면sharedpreference

SharedPreferences prefs = getPreferences(MODE_PRIVATE);
String restoredText = prefs.getString("text", null);
if (restoredText != null)
{
  //mSaved.setText(restoredText, TextView.BufferType.EDITABLE);
  int selectionStart = prefs.getInt("selection-start", -1);
  int selectionEnd = prefs.getInt("selection-end", -1);
  /*if (selectionStart != -1 && selectionEnd != -1)
  {
     mSaved.setSelection(selectionStart, selectionEnd);
  }*/
}

편집하다

API 데모 샘플에서이 스 니펫을 가져 왔습니다. EditText거기 에 상자가 있었다. 이것 context에는 필요하지 않습니다. 나는 같은 의견을 말하고 있습니다.


답변

쓰기 :

SharedPreferences preferences = getSharedPreferences("AUTHENTICATION_FILE_NAME", Context.MODE_WORLD_WRITEABLE);
SharedPreferences.Editor editor = preferences.edit();
editor.putString("Authentication_Id",userid.getText().toString());
editor.putString("Authentication_Password",password.getText().toString());
editor.putString("Authentication_Status","true");
editor.apply();

읽다 :

SharedPreferences prfs = getSharedPreferences("AUTHENTICATION_FILE_NAME", Context.MODE_PRIVATE);
String Astatus = prfs.getString("Authentication_Status", "");

답변

가장 쉬운 방법:

저장하려면 :

getPreferences(MODE_PRIVATE).edit().putString("Name of variable",value).commit();

검색하려면

your_variable = getPreferences(MODE_PRIVATE).getString("Name of variable",default value);

답변

기본 설정의 값 설정 :

// MY_PREFS_NAME - a static String variable like: 
//public static final String MY_PREFS_NAME = "MyPrefsFile";
SharedPreferences.Editor editor = getSharedPreferences(MY_PREFS_NAME, MODE_PRIVATE).edit();
 editor.putString("name", "Elena");
 editor.putInt("idName", 12);
 editor.commit();

환경 설정에서 데이터를 검색하십시오.

SharedPreferences prefs = getSharedPreferences(MY_PREFS_NAME, MODE_PRIVATE);
String restoredText = prefs.getString("text", null);
if (restoredText != null) {
  String name = prefs.getString("name", "No name defined");//"No name defined" is the default value.
  int idName = prefs.getInt("idName", 0); //0 is the default value.
}

더 많은 정보:

공유 환경 설정 사용

공유 환경 설정


답변

싱글 톤 공유 환경 설정 클래스. 앞으로 다른 사람들에게 도움이 될 수 있습니다.

import android.app.Activity;
import android.content.Context;
import android.content.SharedPreferences;

public class SharedPref
{
    private static SharedPreferences mSharedPref;
    public static final String NAME = "NAME";
    public static final String AGE = "AGE";
    public static final String IS_SELECT = "IS_SELECT";

    private SharedPref()
    {

    }

    public static void init(Context context)
    {
        if(mSharedPref == null)
            mSharedPref = context.getSharedPreferences(context.getPackageName(), Activity.MODE_PRIVATE);
    }

    public static String read(String key, String defValue) {
        return mSharedPref.getString(key, defValue);
    }

    public static void write(String key, String value) {
        SharedPreferences.Editor prefsEditor = mSharedPref.edit();
        prefsEditor.putString(key, value);
        prefsEditor.commit();
    }

    public static boolean read(String key, boolean defValue) {
        return mSharedPref.getBoolean(key, defValue);
    }

    public static void write(String key, boolean value) {
        SharedPreferences.Editor prefsEditor = mSharedPref.edit();
        prefsEditor.putBoolean(key, value);
        prefsEditor.commit();
    }

    public static Integer read(String key, int defValue) {
        return mSharedPref.getInt(key, defValue);
    }

    public static void write(String key, Integer value) {
        SharedPreferences.Editor prefsEditor = mSharedPref.edit();
        prefsEditor.putInt(key, value).commit();
    }
}

간단히 전화 SharedPref.init()MainActivity한 번

SharedPref.init(getApplicationContext());

데이터를 쓰려면

SharedPref.write(SharedPref.NAME, "XXXX");//save string in shared preference.
SharedPref.write(SharedPref.AGE, 25);//save int in shared preference.
SharedPref.write(SharedPref.IS_SELECT, true);//save boolean in shared preference.

데이터를 읽으려면

String name = SharedPref.read(SharedPref.NAME, null);//read string in shared preference.
int age = SharedPref.read(SharedPref.AGE, 0);//read int in shared preference.
boolean isSelect = SharedPref.read(SharedPref.IS_SELECT, false);//read boolean in shared preference.