Як використовувати SharedPreferences в Android для зберігання, отримання та редагування значень [закрито]


599

Я хочу зберігати значення часу і потрібно його відредагувати та відредагувати. Як я можу SharedPreferencesце зробити?


Я реалізував оболонку із загальних розділених налаштувань, подивіться: android-know-how-to.blogspot.co.il/2014/03/…
TacB0sS

Спрощений підхід був би за допомогою цієї бібліотеки: github.com/viralypatel/Android-SharedPreferences-Helper ... розширені технічні деталі в моєму відповіді тут ...
AndroidMechanic - Вірусний Patel

Відповіді:


838

Щоб отримати спільні налаштування, використовуйте наступний метод у своїй діяльності:

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 негайно, але запускає асинхронний комітет . Детальніше тут .


Отже, наступного разу, коли користувач запустить мій додаток, збережене значення вже є, і я можу отримати його ... правда?
Мухаммад Максудур Рехман

4
(Для кожного, хто читає вище) Так, це довільно. Цей приклад просто зберігає поточну дату як уподобання за допомогою ключа "com.example.app.datetime".
MSpeed

1
this.getSharedPreferencesдає мені таку помилку:The method getSharedPreferences(String, int) is undefined for the type MyActivity
Si8

15
SharedPreferences.Editor.apply () було введено в Пряники в листопаді 2010 року (після публікації цієї відповіді). Використовуйте його замість commit () там, де це можливо, оскільки застосування () є більш ефективним.
UpLate

4
Editor.apply () вимагає API рівня 9 або вище. нижче, що використовується Editor.commit ()
Lennart Rolland

283

Щоб зберігати значення у спільних налаштуваннях:

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

17
Мені подобається ця відповідь найкраще, оскільки вона використовує getDefaultSharedPreferences. Для більшості користувачів це спростить речі, оскільки до одних і тих же налаштувань можна отримати доступ у всьому додатку, і вам не доведеться турбуватися про названня файлу налаштувань. Більше про це тут: stackoverflow.com/a/6310080/1839500
Дік Лукас

Я погоджуюся ... Я виявив це, витягнувши волосся, намагаючись зрозуміти, чому я не можу отримати доступ до своїх спільних префіксів з іншої діяльності, використовуючи метод у прийнятій відповіді. Дуже дякую!
YouAGitForNotUsingGit

Як я можу використовувати його для збереження та завантаження Map<DateTime, Integer>?
Дмитро

Використовуйте github.com/AliEsaAssadi/Android-Power-Preference для спрощення реалізації
Ali Asadi

164

Для редагування даних з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 Demo. Там була EditTextскринька. У цьому contextце не потрібно. Я коментую те саме.


12
+1, але використовуйте getPreferences (MODE_PRIVATE); замість getPreferences (0); для читабельності.
Ключ

Що тут збережено? Мені потрібно зберегти 2 рядкові значення.
Мухаммад Максудур Рехман

Я також хотів би знати, що таке mSaved. Nvm Я думаю, що це
редакція

1
що -1 означає в getInt ??
amr osama

1
Це значення за замовчуванням буде повернуто, якщо ключ (вибір-запуск) відсутній у спільному доступі.
DeRagan

39

Писати :

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", "");

MODE_WORLD_WRITEABLE застаріло.
Крістофер Сміт

28

Найпростіший спосіб:

Зберегти:

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

Щоб отримати:

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

Я спробував це між видами діяльності, і це не вийшло. Чи потрібно включати структуру пакета до імені var?
Gaʀʀʏ

Щоб використовувати цю структуру між видами діяльності, замініть getPreferences (MODE_PRIVATE) на PreferenceManager.getDefaultSharedPreferences (ваша активність)
Lucian Novac

Використовуйте Apply (), а не виконувати ()
Vaibhav

18

Встановлення значень у налаштуваннях:

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

більше інформації:

Використання загальних налаштувань

Спільні налаштування


Що таке MyPrefsFile? Xml активності уподобань?
Мартін Ерлік

17

Клас спільних уподобань однотонних. це може допомогти іншим у майбутньому.

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.

15

Для зберігання інформації

SharedPreferences preferences = getSharedPreferences(PREFS_NAME,Context.MODE_PRIVATE);
SharedPreferences.Editor editor = preferences.edit();
editor.putString("username", username.getText().toString());
editor.putString("password", password.getText().toString());
editor.putString("logged", "logged");
editor.commit();

Щоб скинути налаштування

SharedPreferences.Editor editor = preferences.edit();
editor.clear();
editor.commit();

12

Якщо ви робите велику програму разом з іншими розробниками у вашій команді і маєте намір організувати все без розсіяного коду чи різних примірників SharedPreferences, ви можете зробити щось подібне:

//SharedPreferences manager class
public class SharedPrefs {

    //SharedPreferences file name
    private static String SHARED_PREFS_FILE_NAME = "my_app_shared_prefs";

    //here you can centralize all your shared prefs keys
    public static String KEY_MY_SHARED_BOOLEAN = "my_shared_boolean";
    public static String KEY_MY_SHARED_FOO = "my_shared_foo";

    //get the SharedPreferences object instance
    //create SharedPreferences file if not present


    private static SharedPreferences getPrefs(Context context) {
        return context.getSharedPreferences(SHARED_PREFS_FILE_NAME, Context.MODE_PRIVATE);
    }

    //Save Booleans
    public static void savePref(Context context, String key, boolean value) {
        getPrefs(context).edit().putBoolean(key, value).commit();       
    }

    //Get Booleans
    public static boolean getBoolean(Context context, String key) {
        return getPrefs(context).getBoolean(key, false);
    }

    //Get Booleans if not found return a predefined default value
    public static boolean getBoolean(Context context, String key, boolean defaultValue) {
        return getPrefs(context).getBoolean(key, defaultValue);
    }

    //Strings
    public static void save(Context context, String key, String value) {
        getPrefs(context).edit().putString(key, value).commit();
    }

    public static String getString(Context context, String key) {
        return getPrefs(context).getString(key, "");
    }

    public static String getString(Context context, String key, String defaultValue) {
        return getPrefs(context).getString(key, defaultValue);
    }

    //Integers
    public static void save(Context context, String key, int value) {
        getPrefs(context).edit().putInt(key, value).commit();
    }

    public static int getInt(Context context, String key) {
        return getPrefs(context).getInt(key, 0);
    }

    public static int getInt(Context context, String key, int defaultValue) {
        return getPrefs(context).getInt(key, defaultValue);
    }

    //Floats
    public static void save(Context context, String key, float value) {
        getPrefs(context).edit().putFloat(key, value).commit();
    }

    public static float getFloat(Context context, String key) {
        return getPrefs(context).getFloat(key, 0);
    }

    public static float getFloat(Context context, String key, float defaultValue) {
        return getPrefs(context).getFloat(key, defaultValue);
    }

    //Longs
    public static void save(Context context, String key, long value) {
        getPrefs(context).edit().putLong(key, value).commit();
    }

    public static long getLong(Context context, String key) {
        return getPrefs(context).getLong(key, 0);
    }

    public static long getLong(Context context, String key, long defaultValue) {
        return getPrefs(context).getLong(key, defaultValue);
    }

    //StringSets
    public static void save(Context context, String key, Set<String> value) {
        getPrefs(context).edit().putStringSet(key, value).commit();
    }

    public static Set<String> getStringSet(Context context, String key) {
        return getPrefs(context).getStringSet(key, null);
    }

    public static Set<String> getStringSet(Context context, String key, Set<String> defaultValue) {
        return getPrefs(context).getStringSet(key, defaultValue);
    }
}

У своїй діяльності ви можете зберігати SharedPreferences таким чином

//saving a boolean into prefs
SharedPrefs.savePref(this, SharedPrefs.KEY_MY_SHARED_BOOLEAN, booleanVar);

і ви можете отримати свої SharedPreferences таким чином

//getting a boolean from prefs
booleanVar = SharedPrefs.getBoolean(this, SharedPrefs.KEY_MY_SHARED_BOOLEAN);

12

У будь-якій програмі є налаштування за замовчуванням, до яких можна отримати доступ через PreferenceManagerекземпляр та пов'язаний з ним метод getDefaultSharedPreferences(Context).

За допомогою SharedPreferenceекземпляра можна отримати значення int будь-яких переваг за допомогою getInt (клавіша String, int defVal) . Перевага, яке нас цікавить у цій справі, є протилежним.

У нашому випадку ми можемо змінити SharedPreferenceекземпляр у нашому випадку за допомогою edit () та використатиputInt(String key, int newVal) Ми збільшили кількість для нашого додатка, що перевищує додаток та відображається відповідно.

Щоб додатково демонструвати це, перезавантажте програму та знову застосуйте програму, ви помітите, що кількість кожного разу буде збільшуватися під час перезавантаження програми.

PreferencesDemo.java

Код:

package org.example.preferences;
import android.app.Activity;
import android.content.SharedPreferences;
import android.os.Bundle;
import android.preference.PreferenceManager;
import android.widget.TextView;

public class PreferencesDemo extends Activity {
   /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);

        // Get the app's shared preferences
        SharedPreferences app_preferences = 
        PreferenceManager.getDefaultSharedPreferences(this);

        // Get the value for the run counter
        int counter = app_preferences.getInt("counter", 0);

        // Update the TextView
        TextView text = (TextView) findViewById(R.id.text);
        text.setText("This app has been started " + counter + " times.");

        // Increment the counter
        SharedPreferences.Editor editor = app_preferences.edit();
        editor.putInt("counter", ++counter);
        editor.commit(); // Very important
    }
}

main.xml

Код:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
      android:orientation="vertical"
      android:layout_width="fill_parent"
      android:layout_height="fill_parent" >

        <TextView
            android:id="@+id/text"  
            android:layout_width="fill_parent" 
            android:layout_height="wrap_content" 
            android:text="@string/hello" />
</LinearLayout>

8

Просте рішення, як зберігати значення для входу в SharedPreferences .

Ви можете розширити MainActivityклас чи інший клас, де ви будете зберігати "значення того, що хочете зберегти". Розмістіть це на класах письменника та читача:

public static final String GAME_PREFERENCES_LOGIN = "Login";

Тут InputClassвводиться і OutputClassвихідний клас відповідно.

// This is a storage, put this in a class which you can extend or in both classes:
//(input and output)
public static final String GAME_PREFERENCES_LOGIN = "Login";

// String from the text input (can be from anywhere)
String login = inputLogin.getText().toString();

// then to add a value in InputCalss "SAVE",
SharedPreferences example = getSharedPreferences(GAME_PREFERENCES_LOGIN, 0);
Editor editor = example.edit();
editor.putString("value", login);
editor.commit();

Тепер ви можете використовувати його деінде, як і в інших класах. Далі йдеться OutputClass.

SharedPreferences example = getSharedPreferences(GAME_PREFERENCES_LOGIN, 0);
String userString = example.getString("value", "defValue");

// the following will print it out in console
Logger.getLogger("Name of a OutputClass".class.getName()).log(Level.INFO, userString);

8

Зберігати в SharedPreferences

SharedPreferences preferences = getSharedPreferences("temp", getApplicationContext().MODE_PRIVATE);
Editor editor = preferences.edit();
editor.putString("name", name);
editor.commit();

Отримати в спільних налаштуваннях

SharedPreferences preferences=getSharedPreferences("temp", getApplicationContext().MODE_PRIVATE);
String name=preferences.getString("name",null);

Примітка: "temp" - це спільне налаштування, а "name" - вхідне значення. якщо значення не виходить, повертайте null


Дуже хороший і простий у використанні. Але ось Context.MODE_PRIVATE not getApplicationContext (). MODE_PRIVATE
Maria Gheorghe

7

Редагувати

SharedPreferences pref = getSharedPreferences("YourPref", MODE_PRIVATE);
SharedPreferences.Editor editor = pref.edit();
editor.putString("yourValue", value);
editor.commit();

Прочитайте

SharedPreferences pref = getSharedPreferences("YourPref", MODE_PRIVATE);
value= pref.getString("yourValue", "");

6

Основна ідея SharedPreferences - це зберігання речей у XML-файлі.

  1. Заявіть свій шлях до файлу xml. (Якщо у вас немає цього файлу, Android створить його. Якщо у вас є цей файл, Android отримає доступ до нього.)

    SharedPreferences prefs = this.getSharedPreferences("com.example.app", Context.MODE_PRIVATE);
  2. Запишіть значення в параметри загального користування

    prefs.edit().putLong("preference_file_key", 1010101).apply();

    preference_file_keyце ім'я загальних файлів налаштувань. І 1010101це значення, яке потрібно зберігати.

    apply()нарешті, це зберегти зміни. Якщо ви отримаєте помилку apply(), змініть її на commit(). Тож це альтернативне речення

    prefs.edit().putLong("preference_file_key", 1010101).commit();
  3. Читайте із спільних налаштувань

    SharedPreferences sp = this.getSharedPreferences("com.example.app", Context.MODE_PRIVATE);
    long lsp = sp.getLong("preference_file_key", -1);

    lspбуде, -1якщо preference_file_keyне має значення. Якщо 'preference_file_key' має значення, воно поверне значення цього.

Весь код для написання є

    SharedPreferences prefs = this.getSharedPreferences("com.example.app", Context.MODE_PRIVATE);    // Declare xml file
    prefs.edit().putLong("preference_file_key", 1010101).apply();    // Write the value to key.

Код для читання є

    SharedPreferences sf = this.getSharedPreferences("com.example.app", Context.MODE_PRIVATE);    // Declare xml file
    long lsp = sp.getLong("preference_file_key", -1);    // Read the key and store in lsp

Editor.apply () вимагає API рівня 9 або вище. нижче, що використовується Editor.commit ()
Lennart Rolland

6

Можна зберегти значення за допомогою цього методу:

public void savePreferencesForReasonCode(Context context,
    String key, String value) {
    SharedPreferences sharedPreferences = PreferenceManager
    .getDefaultSharedPreferences(context);
    SharedPreferences.Editor editor = sharedPreferences.edit();
    editor.putString(key, value);
    editor.commit();
    }

І за допомогою цього методу ви можете отримати значення від SharedPreferences:

public String getPreferences(Context context, String prefKey) {
  SharedPreferences sharedPreferences = PreferenceManager
 .getDefaultSharedPreferences(context);
 return sharedPreferences.getString(prefKey, "");
}

Ось prefKeyключ, який ви використали для збереження конкретного значення. Дякую.


А що з булевими?
Yousha Aleayoub

зберегти за допомогою цього рядка: editor.putString (ключ, значення); користуйтеся цим рядком: Boolean yourLocked = prefs.getBoolean ("заблокований", помилково);
Пані Саєдул Карим

6
editor.putString("text", mSaved.getText().toString());

Тут mSavedможе бути будь-який TextViewабо EditTextзвідки ми можемо витягти рядок. ви можете просто вказати рядок. Тут текст буде ключем, який містить значення, отримане з mSaved( TextViewабо EditText).

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

Також немає необхідності зберігати файл уподобань, використовуючи назву пакета, тобто "com.example.app". Ви можете згадати власне бажане ім’я. Сподіваюся, це допомагає!


5

Є багато способів, як люди рекомендують використовувати SharedPreferences . Я зробив тут демонстраційний проект . Ключовим моментом у зразку є використання ApplicationContext & єдиного об'єкта спільних переваг . Це демонструє, як використовувати SharedPreferences із такими функціями: -

  • Використання класу singelton для доступу / оновлення SharedPreferences
  • Не потрібно передавати контекст завжди для читання / запису SharedPreferences
  • Він використовує Apply (), а не виконувати ()
  • apply () є асинхронним збереженням, нічого не повертає, оновлення значення спочатку в пам'яті & зміни записуються на диск пізніше асинхронно.
  • commit () є синхронним збереженням, воно повертає true / false на основі результату. Зміни записуються на диск синхронно
  • працює на версіях Android 2.3+

Приклад використання, як показано нижче: -

MyAppPreference.getInstance().setSampleStringKey("some_value");
String value= MyAppPreference.getInstance().getSampleStringKey();

Отримати тут вихідний код та докладні API можна знайти тут на developer.android.com


Гей, у мене питання щодо спільних налаштувань. Ви проти цього відповісти? stackoverflow.com/questions/35713822 / ...
Ruchir Baronia

5

Найкраща практика коли-небудь

Створіть інтерфейс з ім’ям PreferenceManager :

// Interface to save values in shared preferences and also for retrieve values from shared preferences
public interface PreferenceManager {

    SharedPreferences getPreferences();
    Editor editPreferences();

    void setString(String key, String value);
    String getString(String key);

    void setBoolean(String key, boolean value);
    boolean getBoolean(String key);

    void setInteger(String key, int value);
    int getInteger(String key);

    void setFloat(String key, float value);
    float getFloat(String key);

}

Як користуватися активністю / фрагментом :

public class HomeActivity extends AppCompatActivity implements PreferenceManager{

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout_activity_home);
    }

    @Override
    public SharedPreferences getPreferences(){
        return getSharedPreferences("SP_TITLE", Context.MODE_PRIVATE);
    }

    @Override
    public SharedPreferences.Editor editPreferences(){
        return getPreferences().edit();
    }

    @Override
    public void setString(String key, String value) {
        editPreferences().putString(key, value).commit();
    }

    @Override
    public String getString(String key) {
        return getPreferences().getString(key, "");
    }

    @Override
    public void setBoolean(String key, boolean value) {
        editPreferences().putBoolean(key, value).commit();
    }

    @Override
    public boolean getBoolean(String key) {
        return  getPreferences().getBoolean(key, false);
    }

    @Override
    public void setInteger(String key, int value) {
        editPreferences().putInt(key, value).commit();
    }

    @Override
    public int getInteger(String key) {
        return getPreferences().getInt(key, 0);
    }

    @Override
    public void setFloat(String key, float value) {
        editPreferences().putFloat(key, value).commit();
    }

    @Override
    public float getFloat(String key) {
        return getPreferences().getFloat(key, 0);
    }
}

Примітка. Замініть свій ключ SharedPreference на SP_TITLE .

Приклади:

Зберегти рядок у спільній доступності :

setString("my_key", "my_value");

Отримайте рядок із спільної участі :

String strValue = getString("my_key");

Сподіваюся, що це вам допоможе.


Чи використовую один і той же об'єкт спільних переваг, щоб зберігати все, або я створюю нові спільні попередні об'єкти для кожної різної частини даних?
Ruchir Baronia

@Ruchir Baronia, не потрібно створювати різні об'єкти, до речі, вам не потрібно ініціалізувати об'єкт спільних уподобань. Зберегти можна вище. Дайте мені знати, чи потрібно щось з мого боку.
Хірен Патель

Добре, дякую. Чи можете ви мені в цьому допомогти? stackoverflow.com/questions/35235759 / ...
Ruchir Baronia

@Ruchir Baronia, ви можете скасувати тему. Сподіваюся, що це вам допоможе.
Hiren Patel

О, я так шкодую, я поставив неправильний question.I хотів запитати про це, його про загальні переваги :) stackoverflow.com/questions/35244256/issue-with-if-statement / ...
Ruchir Baronia

5

Щоб зберігати значення у спільних налаштуваннях:

SharedPreferences sp = PreferenceManager.getDefaultSharedPreferences(this);
SharedPreferences.Editor editor = sp.edit();
editor.putString("Name","Jayesh");
editor.commit();

Щоб отримати значення зі спільних налаштувань:

SharedPreferences sp = PreferenceManager.getDefaultSharedPreferences(this);
String name = sp.getString("Name", ""); // Second parameter is the default value.

4

зберегти

PreferenceManager.getDefaultSharedPreferences(this).edit().putString("VarName","your value").apply();

відступити:

String name = PreferenceManager.getDefaultSharedPreferences(this).getString("VarName","defaultValue");

Типовим значенням є: Значення для повернення, якщо цього параметра не існує.

ви можете змінити " це " за допомогою getActivity () або getApplicationContext () у деяких випадках


Гей, у мене питання щодо спільних налаштувань. Ви проти цього відповісти? stackoverflow.com/questions/35713822 / ...
Ruchir Baronia

Так, я зробив ... :)
Ручір Баронія

3

Я пишу хелперний клас для спільних налаштувань:

import android.content.Context;
import android.content.SharedPreferences;

/**
 * Created by mete_ on 23.12.2016.
 */
public class HelperSharedPref {

Context mContext;

public HelperSharedPref(Context mContext) {
    this.mContext = mContext;
}

/**
 *
 * @param key Constant RC
 * @param value Only String, Integer, Long, Float, Boolean types
 */
public void saveToSharedPref(String key, Object value) throws Exception {
    SharedPreferences.Editor editor = mContext.getSharedPreferences(key, Context.MODE_PRIVATE).edit();
    if (value instanceof String) {
        editor.putString(key, (String) value);
    } else if (value instanceof Integer) {
        editor.putInt(key, (Integer) value);
    } else if (value instanceof Long) {
        editor.putLong(key, (Long) value);
    } else if (value instanceof Float) {
        editor.putFloat(key, (Float) value);
    } else if (value instanceof Boolean) {
        editor.putBoolean(key, (Boolean) value);
    } else {
        throw new Exception("Unacceptable object type");
    }

    editor.commit();
}

/**
 * Return String
 * @param key
 * @return null default is null
 */
public String loadStringFromSharedPref(String key) throws Exception {
    SharedPreferences prefs = mContext.getSharedPreferences(key, Context.MODE_PRIVATE);
    String restoredText = prefs.getString(key, null);

    return restoredText;
}

/**
 * Return int
 * @param key
 * @return null default is -1
 */
public Integer loadIntegerFromSharedPref(String key) throws Exception {
    SharedPreferences prefs = mContext.getSharedPreferences(key, Context.MODE_PRIVATE);
    Integer restoredText = prefs.getInt(key, -1);

    return restoredText;
}

/**
 * Return float
 * @param key
 * @return null default is -1
 */
public Float loadFloatFromSharedPref(String key) throws Exception {
    SharedPreferences prefs = mContext.getSharedPreferences(key, Context.MODE_PRIVATE);
    Float restoredText = prefs.getFloat(key, -1);

    return restoredText;
}

/**
 * Return long
 * @param key
 * @return null default is -1
 */
public Long loadLongFromSharedPref(String key) throws Exception {
    SharedPreferences prefs = mContext.getSharedPreferences(key, Context.MODE_PRIVATE);
    Long restoredText = prefs.getLong(key, -1);

    return restoredText;
}

/**
 * Return boolean
 * @param key
 * @return null default is false
 */
public Boolean loadBooleanFromSharedPref(String key) throws Exception {
    SharedPreferences prefs = mContext.getSharedPreferences(key, Context.MODE_PRIVATE);
    Boolean restoredText = prefs.getBoolean(key, false);

    return restoredText;
}

}

3

Використовуйте використаний цей приклад простий, зрозумілий і перевірений

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
   package="com.example.sairamkrishna.myapplication" >

   <application
      android:allowBackup="true"
      android:icon="@mipmap/ic_launcher"
      android:label="@string/app_name"
      android:theme="@style/AppTheme" >

      <activity
         android:name=".MainActivity"
         android:label="@string/app_name" >

         <intent-filter>
            <action android:name="android.intent.action.MAIN" />
            <category android:name="android.intent.category.LAUNCHER" />
         </intent-filter>

      </activity>

   </application>
</manifest>
public class MainActivity extends AppCompatActivity {
   EditText ed1,ed2,ed3;
   Button b1;

   public static final String MyPREFERENCES = "MyPrefs" ;
   public static final String Name = "nameKey";
   public static final String Phone = "phoneKey";
   public static final String Email = "emailKey";

   SharedPreferences sharedpreferences;

   @Override
   protected void onCreate(Bundle savedInstanceState) {
      super.onCreate(savedInstanceState);
      setContentView(R.layout.activity_main);

      ed1=(EditText)findViewById(R.id.editText);
      ed2=(EditText)findViewById(R.id.editText2);
      ed3=(EditText)findViewById(R.id.editText3);

      b1=(Button)findViewById(R.id.button);
      sharedpreferences = getSharedPreferences(MyPREFERENCES, Context.MODE_PRIVATE);

      b1.setOnClickListener(new View.OnClickListener() {
         @Override
         public void onClick(View v) {
            String n  = ed1.getText().toString();
            String ph  = ed2.getText().toString();
            String e  = ed3.getText().toString();

            SharedPreferences.Editor editor = sharedpreferences.edit();

            editor.putString(Name, n);
            editor.putString(Phone, ph);
            editor.putString(Email, e);
            editor.commit();
            Toast.makeText(MainActivity.this,"Thanks",Toast.LENGTH_LONG).show();
         }
      });
   }

}

2

Використовуючи цю просту бібліотеку , ось як здійснювати дзвінки до SharedPreferences ..

TinyDB tinydb = new TinyDB(context);

tinydb.putInt("clickCount", 2);

tinydb.putString("userName", "john");
tinydb.putBoolean("isUserMale", true); 

tinydb.putList("MyUsers", mUsersArray);
tinydb.putImagePNG("DropBox/WorkImages", "MeAtlunch.png", lunchBitmap);

//These plus the corresponding get methods are all Included

2

Я хотів би додати тут, що більшість фрагментів цього питання матиме щось на зразок MODE_PRIVATE при використанні SharedPreferences. Ну, MODE_PRIVATE означає, що те, що ви пишете в цю спільну перевагу, може читати лише ваша програма.

Який би ключ ви не передали методу getSharedPreferences (), андроїд створює файл з таким ім'ям і зберігає в ньому дані переваг. Також пам’ятайте, що getSharedPreferences () повинен використовуватися, коли ви маєте намір мати кілька файлів уподобань для вашої програми. Якщо ви маєте намір використовувати один файл переваг і зберігати в ньому всі пари ключових значень, то використовуйте метод getSharedPreference (). Дивно, чому всі (в тому числі і я) просто використовують аромат getSharedPreferences (), навіть не розуміючи різниці між цими двома.

Наступний відеоурок повинен допомогти https://www.youtube.com/watch?v=2PcAQ1NBy98


2

Проста та без проблем :: бібліотека "Android-SharedPreferences-Helper"

Краще пізно, ніж ніколи: я створив бібліотеку "Android-SharedPreferences-Helper", щоб зменшити складність та зусилля в використанні SharedPreferences. Він також забезпечує деяку розширену функціональність. Кілька речей, які він пропонує:

  • Ініціалізація та налаштування однієї лінії
  • Легкий вибір, чи слід використовувати налаштування за замовчуванням або спеціальний файл налаштувань
  • Заздалегідь визначені (типові типи даних) та настроювані (що ви можете обрати) значення за замовчуванням для кожного типу даних
  • Можливість встановити різні значення за замовчуванням для одноразового використання лише за допомогою додаткового параметра
  • Ви можете зареєструвати та скасувати реєстрацію OnSharedPreferenceChangeListener, як і для класу за замовчуванням
dependencies {
    ...
    ...
    compile(group: 'com.viralypatel.sharedpreferenceshelper', name: 'library', version: '1.1.0', ext: 'aar')
}

Декларація SharedPreferencesHelper object: (рекомендується на рівні класу)

SharedPreferencesHelper sph; 

Імпульс об'єкта SharedPreferencesHelper: (рекомендовано методом onCreate ())

// use one of the following ways to instantiate
sph = new SharedPreferencesHelper(this); //this will use default shared preferences
sph = new SharedPreferencesHelper(this, "myappprefs"); // this will create a named shared preference file
sph = new SharedPreferencesHelper(this, "myappprefs", 0); // this will allow you to specify a mode

Внесення значень у спільні налаштування

Досить просто! На відміну від способу за замовчуванням (при використанні класу SharedPreferences) НЕ буде потрібно дзвонити .edit()і .commit()ніколи.

sph.putBoolean("boolKey", true);
sph.putInt("intKey", 123);
sph.putString("stringKey", "string value");
sph.putLong("longKey", 456876451);
sph.putFloat("floatKey", 1.51f);

// putStringSet is supported only for android versions above HONEYCOMB
Set name = new HashSet();
name.add("Viral");
name.add("Patel");
sph.putStringSet("name", name);

Це воно! Ваші значення зберігаються у спільних налаштуваннях.

Отримання значень із загальних налаштувань

Знову ж таки, лише один простий метод виклику з назвою ключа.

sph.getBoolean("boolKey");
sph.getInt("intKey");
sph.getString("stringKey");
sph.getLong("longKey");
sph.getFloat("floatKey");

// getStringSet is supported only for android versions above HONEYCOMB
sph.getStringSet("name");

Він має багато інших розширених функціональних можливостей

Перевірте деталі розширеної функціональності, інструкцій із використання та встановлення тощо на сторінці репозиторію GitHub .


Чи використовую один і той же об'єкт спільних переваг, щоб зберігати все, або я створюю нові спільні попередні об'єкти для кожної різної частини даних?
Ruchir Baronia

Ви повинні використовувати те ж саме, наскільки це можливо. У цьому весь сенс створення цієї бібліотеки.
AndroidMechanic - Viral Patel

Гей, у мене питання щодо спільних налаштувань. Ви проти цього відповісти? stackoverflow.com/questions/35713822 / ...
Ruchir Baronia

2
SharedPreferences.Editor editor = getSharedPreferences("identifier", 
MODE_PRIVATE).edit();
//identifier is the unique to fetch data from your SharedPreference.


editor.putInt("keyword", 0); 
// saved value place with 0.
//use this "keyword" to fetch saved value again.
editor.commit();//important line without this line your value is not stored in preference   

// fetch the stored data using ....

SharedPreferences prefs = getSharedPreferences("identifier", MODE_PRIVATE); 
// here both identifier will same

int fetchvalue = prefs.getInt("keyword", 0);
// here keyword will same as used above.
// 0 is default value when you nothing save in preference that time fetch value is 0.

вам потрібно використовувати SharedPreferences в AdapterClass або будь-який інший. тоді просто використовуйте цю декларацію і використовуйте ту саму дупу вище.

SharedPreferences.Editor editor = context.getSharedPreferences("idetifier", 
Context.MODE_PRIVATE).edit();
SharedPreferences prefs = context.getSharedPreferences("identifier", Context.MODE_PRIVATE);

//here context is your application context

для рядкового або булевого значення

editor.putString("stringkeyword", "your string"); 
editor.putBoolean("booleankeyword","your boolean value");
editor.commit();

отримати дані такі ж, як і вище

String fetchvalue = prefs.getString("keyword", "");
Boolean fetchvalue = prefs.getBoolean("keyword", "");

2

2.для зберігання у спільній перевазі

SharedPreferences.Editor editor = 
getSharedPreferences("DeviceToken",MODE_PRIVATE).edit();
                    editor.putString("DeviceTokenkey","ABABABABABABABB12345");
editor.apply();

2.для того ж використання

    SharedPreferences prefs = getSharedPreferences("DeviceToken", 
 MODE_PRIVATE);
  String deviceToken = prefs.getString("DeviceTokenkey", null);

1

Тут я створив клас Helper для використання переваг в android.

Це клас помічників:

public class PrefsUtil {

public static SharedPreferences getPreference() {
    return PreferenceManager.getDefaultSharedPreferences(Applicatoin.getAppContext());
}

public static void putBoolean(String key, boolean value) {
    getPreference().edit().putBoolean(key, value)
            .apply();
}

public static boolean getBoolean(String key) {
    return getPreference().getBoolean(key, false);
}

public static void putInt(String key, int value) {

    getPreference().edit().putInt(key, value).apply();

}

public static void delKey(String key) {

    getPreference().edit().remove(key).apply();

}

}

1

Зберігання та отримання глобальних змінних функціональним чином. Щоб перевірити, переконайтеся, що на вашій сторінці є елементи Textview, коментуйте два рядки в коді та запустіть. Потім знову прокоментуйте два рядки та запустіть.
Тут ідентифікатор TextView - це ім’я користувача та пароль.

У кожному класі, де ви хочете його використовувати, додайте ці дві підпрограми в кінці. Я хотів би, щоб ця рутина була глобальною процедурою, але не знаю як. Це працює.

Змінні доступні скрізь. Він зберігає змінні у "MyFile". Ви можете змінити це по-своєму.

Ви називаєте це за допомогою

 storeSession("username","frans");
 storeSession("password","!2#4%");***

змінна ім’я користувача буде заповнено "frans", а пароль із "! 2 # 4%". Навіть після перезавантаження вони доступні.

і ви отримуєте його за допомогою

 password.setText(getSession(("password")));
 usernames.setText(getSession(("username")));

нижче всього коду моєї grid.java

    package nl.yentel.yenteldb2;
    import android.content.SharedPreferences;
    import android.os.Bundle;
    import android.support.design.widget.FloatingActionButton;
    import android.support.design.widget.Snackbar;
    import android.support.v7.app.AppCompatActivity;
    import android.support.v7.widget.Toolbar;
    import android.view.View;
    import android.widget.EditText;
    import android.widget.TextView;

    public class Grid extends AppCompatActivity {
    private TextView usernames;
    private TextView password;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
       setContentView(R.layout.activity_grid);
        Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
        setSupportActionBar(toolbar);

        FloatingActionButton fab = (FloatingActionButton) findViewById(R.id.fab);
        fab.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                Snackbar.make(view, "Replace with your own action", Snackbar.LENGTH_LONG)
                        .setAction("Action", null).show();
            }
        });
        getSupportActionBar().setDisplayHomeAsUpEnabled(true);

      ***//  storeSession("username","frans.eilering@gmail.com");
        //storeSession("password","mijn wachtwoord");***
        password = (TextView) findViewById(R.id.password);
        password.setText(getSession(("password")));
        usernames=(TextView) findViewById(R.id.username);
        usernames.setText(getSession(("username")));
    }

    public void storeSession(String key, String waarde) { 
        SharedPreferences pref = getApplicationContext().getSharedPreferences("MyFile", MODE_PRIVATE);
        SharedPreferences.Editor editor = pref.edit();
        editor.putString(key, waarde);
        editor.commit();
    }

    public String getSession(String key) {
//http://androidexample.com/Android_SharedPreferences_Basics/index.php?view=article_discription&aid=126&aaid=146
        SharedPreferences pref = getApplicationContext().getSharedPreferences("MyFile", MODE_PRIVATE);
        SharedPreferences.Editor editor = pref.edit();
        String output = pref.getString(key, null);
        return output;
    }

    }

нижче ви знайдете елементи перегляду тексту

<TextView
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="usernames"
    android:id="@+id/username"
    android:layout_below="@+id/textView"
    android:layout_alignParentStart="true"
    android:layout_marginTop="39dp"
    android:hint="hier komt de username" />

 <TextView
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="password"
    android:id="@+id/password"
    android:layout_below="@+id/user"
    android:layout_alignParentStart="true"
    android:hint="hier komt het wachtwoord" />

1

Я створив клас Helper, щоб полегшити своє життя. Це загальний клас і має безліч методів, які зазвичай використовуються в таких додатках, як "Спільні налаштування", "Дійсність електронної пошти", "Формат часу дати". Скопіюйте цей клас у свій код та отримайте доступ до його методів, де вам потрібно.

 import android.app.AlertDialog;
 import android.app.ProgressDialog;
 import android.content.Context;
 import android.content.DialogInterface;
 import android.content.SharedPreferences;
 import android.support.v4.app.FragmentActivity;
 import android.view.inputmethod.InputMethodManager;
 import android.widget.EditText;
 import android.widget.Toast;

 import java.text.ParseException;
 import java.text.SimpleDateFormat;
 import java.util.Date;
 import java.util.Random;
 import java.util.regex.Matcher;
 import java.util.regex.Pattern;
 import java.util.regex.PatternSyntaxException;

/**
* Created by Zohaib Hassan on 3/4/2016.
*/
 public class Helper {

private static ProgressDialog pd;

public static void saveData(String key, String value, Context context) {
    SharedPreferences sp = context.getApplicationContext()
            .getSharedPreferences("appData", 0);
    SharedPreferences.Editor editor;
    editor = sp.edit();
    editor.putString(key, value);
    editor.commit();
}

public static void deleteData(String key, Context context){
    SharedPreferences sp = context.getApplicationContext()
            .getSharedPreferences("appData", 0);
    SharedPreferences.Editor editor;
    editor = sp.edit();
    editor.remove(key);
    editor.commit();

}

public static String getSaveData(String key, Context context) {
    SharedPreferences sp = context.getApplicationContext()
            .getSharedPreferences("appData", 0);
    String data = sp.getString(key, "");
    return data;

}




public static long dateToUnix(String dt, String format) {
    SimpleDateFormat formatter;
    Date date = null;
    long unixtime;
    formatter = new SimpleDateFormat(format);
    try {
        date = formatter.parse(dt);
    } catch (Exception ex) {

        ex.printStackTrace();
    }
    unixtime = date.getTime();
    return unixtime;

}

public static String getData(long unixTime, String formate) {

    long unixSeconds = unixTime;
    Date date = new Date(unixSeconds);
    SimpleDateFormat sdf = new SimpleDateFormat(formate);
    String formattedDate = sdf.format(date);
    return formattedDate;
}

public static String getFormattedDate(String date, String currentFormat,
                                      String desiredFormat) {
    return getData(dateToUnix(date, currentFormat), desiredFormat);
}




public static double distance(double lat1, double lon1, double lat2,
                              double lon2, char unit) {
    double theta = lon1 - lon2;
    double dist = Math.sin(deg2rad(lat1)) * Math.sin(deg2rad(lat2))
            + Math.cos(deg2rad(lat1)) * Math.cos(deg2rad(lat2))
            * Math.cos(deg2rad(theta));
    dist = Math.acos(dist);
    dist = rad2deg(dist);
    dist = dist * 60 * 1.1515;
    if (unit == 'K') {
        dist = dist * 1.609344;
    } else if (unit == 'N') {
        dist = dist * 0.8684;
    }
    return (dist);
}

/* ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: */
/* :: This function converts decimal degrees to radians : */
/* ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: */
private static double deg2rad(double deg) {
    return (deg * Math.PI / 180.0);
}

/* ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: */
/* :: This function converts radians to decimal degrees : */
/* ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: */
private static double rad2deg(double rad) {
    return (rad * 180.0 / Math.PI);
}

public static int getRendNumber() {
    Random r = new Random();
    return r.nextInt(360);
}

public static void hideKeyboard(Context context, EditText editText) {
    InputMethodManager imm = (InputMethodManager) context
            .getSystemService(Context.INPUT_METHOD_SERVICE);
    imm.hideSoftInputFromWindow(editText.getWindowToken(), 0);
}

public static void showLoder(Context context, String message) {
    pd = new ProgressDialog(context);

    pd.setCancelable(false);
    pd.setMessage(message);
    pd.show();
}

public static void showLoderImage(Context context, String message) {
    pd = new ProgressDialog(context);
    pd.setProgressStyle(ProgressDialog.STYLE_HORIZONTAL);
    pd.setCancelable(false);
    pd.setMessage(message);
    pd.show();
}

public static void dismissLoder() {
    pd.dismiss();
}

public static void toast(Context context, String text) {

    Toast.makeText(context, text, Toast.LENGTH_LONG).show();
}
/*
     public static Boolean connection(Context context) {
    ConnectionDetector connection = new ConnectionDetector(context);
    if (!connection.isConnectingToInternet()) {

        Helper.showAlert(context, "No Internet access...!");
        //Helper.toast(context, "No internet access..!");
        return false;
    } else
        return true;
}*/

public static void removeMapFrgment(FragmentActivity fa, int id) {

    android.support.v4.app.Fragment fragment;
    android.support.v4.app.FragmentManager fm;
    android.support.v4.app.FragmentTransaction ft;
    fm = fa.getSupportFragmentManager();
    fragment = fm.findFragmentById(id);
    ft = fa.getSupportFragmentManager().beginTransaction();
    ft.remove(fragment);
    ft.commit();

}

public static AlertDialog showDialog(Context context, String message) {
    AlertDialog.Builder builder = new AlertDialog.Builder(context);
    builder.setMessage(message);

    builder.setPositiveButton("OK", new DialogInterface.OnClickListener() {

        @Override
        public void onClick(DialogInterface dialog, int id) {
            // TODO Auto-generated method stub

        }
    });

    return builder.create();
}

public static void showAlert(Context context, String message) {
    AlertDialog.Builder builder = new AlertDialog.Builder(context);
    builder.setTitle("Alert");
    builder.setMessage(message)
            .setPositiveButton("Ok", new DialogInterface.OnClickListener() {
                public void onClick(DialogInterface dialog, int id) {
                    dialog.dismiss();
                }
            }).show();
}

public static boolean isURL(String url) {
    if (url == null)
        return false;

    boolean foundMatch = false;
    try {
        Pattern regex = Pattern
                .compile(
                        "\\b(?:(https?|ftp|file)://|www\\.)?[-A-Z0-9+&#/%?=~_|$!:,.;]*[A-Z0-9+&@#/%=~_|$]\\.[-A-Z0-9+&@#/%?=~_|$!:,.;]*[A-Z0-9+&@#/%=~_|$]",
                        Pattern.CASE_INSENSITIVE | Pattern.UNICODE_CASE);
        Matcher regexMatcher = regex.matcher(url);
        foundMatch = regexMatcher.matches();
        return foundMatch;
    } catch (PatternSyntaxException ex) {
        // Syntax error in the regular expression
        return false;
    }
}

public static boolean atLeastOneChr(String string) {
    if (string == null)
        return false;

    boolean foundMatch = false;
    try {
        Pattern regex = Pattern.compile("[a-zA-Z0-9]",
                Pattern.CASE_INSENSITIVE | Pattern.UNICODE_CASE);
        Matcher regexMatcher = regex.matcher(string);
        foundMatch = regexMatcher.matches();
        return foundMatch;
    } catch (PatternSyntaxException ex) {
        // Syntax error in the regular expression
        return false;
    }
}

public static boolean isValidEmail(String email, Context context) {
    String expression = "^[\\w\\.-]+@([\\w\\-]+\\.)+[A-Z]{2,4}$";
    CharSequence inputStr = email;
    Pattern pattern = Pattern.compile(expression, Pattern.CASE_INSENSITIVE);
    Matcher matcher = pattern.matcher(inputStr);
    if (matcher.matches()) {
        return true;
    } else {
        // Helper.toast(context, "Email is not valid..!");

        return false;
    }
}

public static boolean isValidUserName(String email, Context context) {
    String expression = "^[0-9a-zA-Z]+$";
    CharSequence inputStr = email;
    Pattern pattern = Pattern.compile(expression, Pattern.CASE_INSENSITIVE);
    Matcher matcher = pattern.matcher(inputStr);
    if (matcher.matches()) {
        return true;
    } else {
        Helper.toast(context, "Username is not valid..!");
        return false;
    }
}

public static boolean isValidDateSlash(String inDate) {
    SimpleDateFormat dateFormat = new SimpleDateFormat("dd/mm/yyyy");
    dateFormat.setLenient(false);
    try {
        dateFormat.parse(inDate.trim());
    } catch (ParseException pe) {
        return false;
    }
    return true;
}

public static boolean isValidDateDash(String inDate) {
    SimpleDateFormat dateFormat = new SimpleDateFormat("dd-mm-yyyy");
    dateFormat.setLenient(false);
    try {
        dateFormat.parse(inDate.trim());
    } catch (ParseException pe) {
        return false;
    }
    return true;
}

public static boolean isValidDateDot(String inDate) {
    SimpleDateFormat dateFormat = new SimpleDateFormat("dd.mm.yyyy");
    dateFormat.setLenient(false);
    try {
        dateFormat.parse(inDate.trim());
    } catch (ParseException pe) {
        return false;
    }
    return true;
}

}
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.