Cara menggunakan SharedPreferences di Android untuk menyimpan, mengambil, dan mengedit nilai [tertutup]


599

Saya ingin menyimpan nilai waktu dan perlu mengambil dan mengeditnya. Bagaimana saya bisa menggunakan SharedPreferencesini?


Saya telah menerapkan pembungkus SharedPreferences Generic, lihat: android-know-how-to.blogspot.co.il/2014/03/…
TacB0sS

Sebuah pendekatan yang disederhanakan akan menggunakan library ini: github.com/viralypatel/Android-SharedPreferences-Helper ... diperpanjang rincian teknis di saya jawaban di sini ...
AndroidMechanic - Viral Patel

Jawaban:


838

Untuk mendapatkan preferensi bersama, gunakan metode berikut ini dalam aktivitas Anda:

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

Untuk membaca preferensi:

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

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

Untuk mengedit dan menyimpan preferensi

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

Direktori sampel Android sdk berisi contoh pengambilan dan penyimpanan preferensi bersama. Terletak di:

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

Edit ==>

Saya perhatikan, penting untuk menulis perbedaan antara commit()dan di apply()sini juga.

commit()kembali truejika nilai berhasil disimpan sebaliknya false. Ini menyimpan nilai ke SharedPreferences secara sinkron .

apply()ditambahkan pada 2.3 dan tidak mengembalikan nilai apa pun baik sukses atau gagal. Ini menyimpan nilai ke SharedPreferences segera tetapi memulai komit asinkron . Lebih detail ada di sini .


Jadi pengguna lain kali menjalankan aplikasi saya, nilai yang tersimpan sudah ada dan saya bisa mengambilnya ... kan?
Muhammad Maqsoodur Rehman

4
(Untuk siapa pun yang membaca di atas) Ya itu sewenang-wenang. Contoh ini hanya menyimpan tanggal saat ini sebagai preferensi dengan kunci "com.example.app.datetime".
MSpeed

1
this.getSharedPreferencesmemberi saya kesalahan berikut:The method getSharedPreferences(String, int) is undefined for the type MyActivity
Si8

15
SharedPreferences.Editor.apply () diperkenalkan di Gingerbread pada November 2010 (setelah jawaban ini diposting). Gunakan alih-alih komit () jika memungkinkan karena berlaku () lebih efisien.
UpLate

4
Editor.apply () membutuhkan API level 9 atau lebih tinggi. di bawah ini yang menggunakan Editor.commit ()
Lennart Rolland

283

Untuk menyimpan nilai dalam preferensi bersama:

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

Untuk mengambil nilai dari preferensi bersama:

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

17
Saya suka jawaban ini yang terbaik karena menggunakan getDefaultSharedPreferences. Untuk sebagian besar pengguna ini akan menyederhanakan hal-hal karena preferensi yang sama dapat diakses di seluruh aplikasi dan Anda tidak perlu khawatir tentang penamaan file preferensi Anda. Lebih lanjut tentang itu di sini: stackoverflow.com/a/6310080/1839500
Dick Lucas

Saya setuju ... Saya menemukan ini setelah menarik rambut saya mencoba mencari tahu mengapa saya tidak dapat mengakses prefs saya yang dibagikan dari aktivitas lain menggunakan metode dalam jawaban yang diterima. Terima kasih banyak!
You'reAGitForNotUsingGit

Bagaimana saya bisa menggunakannya untuk menyimpan dan memuat Map<DateTime, Integer>?
Dmitry

Gunakan github.com/AliEsaAssadi/Android-Power-Preference untuk menyederhanakan implementasi
Ali Asadi

164

Untuk mengedit data darisharedpreference

 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();

Untuk mengambil data darisharedpreference

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

Edit

Saya mengambil cuplikan ini dari sampel Demo API. Ada sebuah EditTextkotak di sana. Dalam contexthal ini tidak diperlukan. Saya berkomentar sama.


12
+1, tetapi gunakan getPreferences (MODE_PRIVATE); bukannya getPreferences (0); untuk keterbacaan.
Kunci

Apa yang disimpan di sini? Saya perlu menyimpan 2 nilai string.
Muhammad Maqsoodur Rehman

Saya juga ingin tahu apa itu mSave. Nvm saya pikir itu kotak edit
karlstackoverflow

1
apa -1 artinya di getInt ??
amr osama

1
Itulah nilai default yang akan dikembalikan jika kunci (seleksi-awal) tidak ada dalam preferensi bersama. Ini bisa apa saja dan hanya untuk referensi Anda.
DeRagan

39

Untuk menulis :

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();

Untuk membaca :

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

MODE_WORLD_WRITEABLE sudah usang.
Christopher Smit

28

Cara termudah:

Untuk menyimpan:

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

Mendapatkan kembali:

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

Saya mencoba ini di antara kegiatan dan tidak berhasil. Apakah struktur paket perlu dimasukkan dalam var name?
Gaʀʀʏ

Untuk menggunakan struktur ini di antara aktivitas, ganti getPreferences (MODE_PRIVATE) dengan PreferenceManager.getDefaultSharedPreferences (kreativitas Anda)
Lucian Novac

Gunakan apply () bukannya komit ()
Vaibhav

18

Menetapkan nilai dalam Preferensi:

// 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();

Ambil data dari preferensi:

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

Info lebih lanjut:

Menggunakan Preferensi Bersama

Preferensi Bersama


Apa itu MyPrefsFile? Xml dari aktivitas preferensi?
Martin Erlic

17

Kelas Preferensi Bersama Singleton. ini dapat membantu orang lain di masa depan.

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();
    }
}

Hanya memanggil SharedPref.init()pada MainActivitysekali

SharedPref.init(getApplicationContext());

Untuk Menulis data

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.

Untuk Membaca Data

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

Untuk menyimpan informasi

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();

Untuk mengatur ulang preferensi Anda

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

12

Jika Anda membuat aplikasi besar dengan pengembang lain di tim Anda dan berniat untuk mengatur semuanya dengan baik tanpa kode yang tersebar atau contoh SharedPreferences yang berbeda, Anda dapat melakukan sesuatu seperti ini:

//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);
    }
}

Dalam aktivitas Anda, Anda dapat menyimpan SharedPreferences dengan cara ini

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

dan Anda dapat mengambil SharedPreferences Anda dengan cara ini

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

12

Dalam aplikasi apa pun, ada preferensi default yang dapat diakses melalui PreferenceManagerinstance dan metode terkaitgetDefaultSharedPreferences(Context) .

Dengan SharedPreferenceinstance, seseorang dapat mengambil nilai int dari preferensi apa pun dengan getInt (kunci String, int defVal) . Preferensi yang kami minati dalam kasus ini adalah kontra.

Dalam kasus kami, kami dapat memodifikasi SharedPreferenceinstance dalam kasus kami menggunakan edit () dan menggunakanputInt(String key, int newVal) Kami meningkatkan jumlah untuk aplikasi kami yang ada di luar aplikasi dan ditampilkan sesuai.

Untuk demo lebih lanjut ini, restart dan aplikasi Anda lagi, Anda akan melihat bahwa jumlah akan meningkat setiap kali Anda me-restart aplikasi.

PreferensiDemo.java

Kode:

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

Kode:

<?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

Solusi sederhana tentang cara menyimpan nilai masuk oleh SharedPreferences .

Anda bisa memperluas MainActivitykelas atau kelas lain tempat Anda akan menyimpan "nilai sesuatu yang ingin Anda pertahankan". Masukkan ini ke dalam kelas penulis dan pembaca:

public static final String GAME_PREFERENCES_LOGIN = "Login";

Berikut InputClassadalah input dan OutputClasskelas output, masing-masing.

// 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();

Sekarang Anda dapat menggunakannya di tempat lain, seperti kelas lainnya. Berikut ini adalah 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

Simpan di SharedPreferences

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

Dapatkan di SharedPreferences

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

Catatan: "temp" adalah nama preferensi yang dibagikan dan "nama" adalah nilai input. jika nilai tidak keluar maka kembalikan nol


Sangat bagus dan mudah digunakan. Tapi di sini adalah Context.MODE_PRIVATE tidak mendapatkanApplicationContext (). MODE_PRIVATE
Maria Gheorghe

7

Edit

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

Baca

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

6

Ide dasar SharedPreferences adalah untuk menyimpan sesuatu pada file XML.

  1. Nyatakan jalur file xml Anda. (Jika Anda tidak memiliki file ini, Android akan membuatnya. Jika Anda memiliki file ini, Android akan mengaksesnya.)

    SharedPreferences prefs = this.getSharedPreferences("com.example.app", Context.MODE_PRIVATE);
  2. Tulis nilai ke Preferensi Bersama

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

    itu preference_file_keyadalah nama file preferensi bersama. Dan 1010101nilai yang Anda butuhkan untuk menyimpan.

    apply()akhirnya adalah untuk menyimpan perubahan. Jika Anda mendapatkan kesalahan dari apply(), ubah ke commit(). Jadi kalimat alternatif ini adalah

    prefs.edit().putLong("preference_file_key", 1010101).commit();
  3. Baca dari Preferensi Bersama

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

    lspakan -1jika preference_file_keytidak memiliki nilai. Jika 'prefer_file_key' memiliki nilai, itu akan mengembalikan nilai ini.

Seluruh kode untuk menulis adalah

    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.

Kode untuk membaca adalah

    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 () membutuhkan API level 9 atau lebih tinggi. di bawah ini yang menggunakan Editor.commit ()
Lennart Rolland

6

Anda dapat menyimpan nilai menggunakan metode ini:

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();
    }

Dan menggunakan metode ini Anda bisa mendapatkan nilai dari SharedPreferences:

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

Ini prefKeyadalah kunci yang Anda gunakan untuk menyimpan nilai tertentu. Terima kasih.


Bagaimana dengan boolean?
Yousha Aleayoub

simpan menggunakan baris ini: editor.putString (kunci, nilai); dapatkan menggunakan baris ini: Boolean yourLocked = prefs.getBoolean ("terkunci", salah);
Md. Sajedul Karim

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

Di sini, mSaveddapat berupa apa saja TextViewatau EditTextdari mana kita dapat mengekstraksi string. Anda cukup menentukan string. Di sini teks akan menjadi kunci yang menyimpan nilai yang diperoleh dari mSaved( TextViewatau EditText).

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

Juga tidak perlu menyimpan file preferensi menggunakan nama paket yaitu, "com.example.app". Anda dapat menyebutkan nama pilihan Anda sendiri. Semoga ini membantu !


5

Ada banyak cara orang merekomendasikan cara menggunakan SharedPreferences . Saya telah membuat proyek demo di sini . Poin kunci dalam sampel adalah menggunakan ApplicationContext & objek preferensipengguna bersama . Ini menunjukkan cara menggunakan SharedPreferences dengan fitur berikut: -

  • Menggunakan kelas singelton untuk mengakses / memperbarui SharedPreferences
  • Tidak perlu meneruskan konteks selalu untuk membaca / menulis SharedPreferences
  • Ini menggunakan apply () alih-alih komit ()
  • apply () asynchronus save, tidak mengembalikan apa-apa, ini memperbarui nilai dalam memori pertama & perubahan ditulis ke disk kemudian secara tidak sinkron.
  • commit () adalah save syncus, mengembalikan benar / salah berdasarkan hasil. Perubahan ditulis ke disk secara sinkron
  • bekerja di Android 2.3+ versi

Contoh penggunaan seperti di bawah ini: -

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

Dapatkan kode sumber di sini & API Terperinci dapat ditemukan di sini di developer.android.com


Hai, saya punya pertanyaan tentang Preferensi Bersama. Apakah Anda keberatan menjawabnya? stackoverflow.com/questions/35713822/…
Ruchir Baronia

5

Praktik terbaik yang pernah ada

Buat Antarmuka bernama dengan 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);

}

Cara menggunakan dengan Aktivitas / Fragmen :

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);
    }
}

Catatan: Ganti kunci SharedPreference Anda dengan SP_TITLE .

Contoh:

Simpan string dalam Sharepence :

setString("my_key", "my_value");

Dapatkan string dari shareperence :

String strValue = getString("my_key");

Semoga ini bisa membantu Anda.


Apakah saya menggunakan objek preferensi bersama yang sama untuk menyimpan semuanya, atau apakah saya membuat objek pref bersama baru untuk setiap bagian data yang berbeda?
Ruchir Baronia

@Ruchir Baronia, tidak perlu membuat objek yang berbeda, dengan cara Anda tidak perlu menginisialisasi objek preferensi bersama. Anda dapat menghemat dengan cara di atas. Beri tahu saya jika ada yang diperlukan dari pihak saya.
Hiren Patel

Oke terima kasih. Bisakah Anda membantu saya dengan ini? stackoverflow.com/questions/35235759/…
Ruchir Baronia

@Ruchir Baronia, Anda dapat membatalkan utas. Semoga ini bisa membantu Anda.
Hiren Patel

Oh, maafkan saya, saya mengajukan pertanyaan yang salah. Saya ingin bertanya tentang ini, ini tentang preferensi yang dibagikan :) stackoverflow.com/questions/35244256/issue-with-if-statement/…
Ruchir Baronia

5

Untuk menyimpan nilai dalam preferensi bersama:

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

Untuk mengambil nilai dari preferensi bersama:

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

4

untuk menyimpan

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

untuk retreive:

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

nilai default adalah: Nilai untuk kembali jika preferensi ini tidak ada.

Anda dapat mengubah " ini " dengan getActivity () atau getApplicationContext () dalam beberapa kasus


Hai, saya punya pertanyaan tentang Preferensi Bersama. Apakah Anda keberatan menjawabnya? stackoverflow.com/questions/35713822/…
Ruchir Baronia

Ya, saya lakukan ... :)
Ruchir Baronia

3

Saya menulis kelas pembantu untuk preferensi bersama:

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

Gunakan contoh yang digunakan sederhana dan jelas dan diperiksa

<?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

Menggunakan perpustakaan sederhana ini , berikut adalah cara Anda melakukan panggilan ke 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

Saya ingin menambahkan di sini bahwa sebagian besar cuplikan untuk pertanyaan ini akan memiliki sesuatu seperti MODE_PRIVATE saat menggunakan SharedPreferences. Nah, MODE_PRIVATE berarti bahwa apa pun yang Anda tulis ke dalam preferensi bersama ini hanya dapat dibaca oleh aplikasi Anda saja.

Kunci apa pun yang Anda berikan untuk metode getSharedPreferences (), android membuat file dengan nama itu dan menyimpan data preferensi ke dalamnya. Juga ingat bahwa getSharedPreferences () seharusnya digunakan ketika Anda bermaksud memiliki beberapa file preferensi untuk aplikasi Anda. Jika Anda bermaksud menggunakan file preferensi tunggal dan menyimpan semua pasangan nilai kunci ke dalamnya, maka gunakan metode getSharedPreference (). Ini aneh mengapa semua orang (termasuk saya) hanya menggunakan getSharedPreferences () rasa bahkan tanpa memahami perbedaan antara dua di atas.

Tutorial video berikut ini akan membantu https://www.youtube.com/watch?v=2PcAQ1NBy98


2

Perpustakaan sederhana dan bebas gangguan :: "Android-SharedPreferences-Helper"

Lebih baik terlambat daripada tidak sama sekali: Saya membuat perpustakaan "Android-SharedPreferences-Helper" untuk membantu mengurangi kerumitan dan upaya penggunaan SharedPreferences. Ini juga menyediakan beberapa fungsi tambahan. Beberapa hal yang ditawarkannya adalah sebagai berikut:

  • Inisialisasi dan pengaturan satu baris
  • Mudah memilih apakah akan menggunakan preferensi default atau file preferensi khusus
  • Nilai standar yang ditentukan sebelumnya (tipe data) dan disesuaikan (apa yang Anda pilih) untuk masing-masing tipe data
  • Kemampuan untuk menetapkan nilai default yang berbeda untuk penggunaan tunggal hanya dengan param tambahan
  • Anda dapat mendaftar dan membatalkan registrasi OnSharedPreferenceChangeListener seperti yang Anda lakukan untuk kelas default
dependencies {
    ...
    ...
    compile(group: 'com.viralypatel.sharedpreferenceshelper', name: 'library', version: '1.1.0', ext: 'aar')
}

Deklarasi SharedPreferencesHelper objek: (direkomendasikan di tingkat kelas)

SharedPreferencesHelper sph; 

Instantiasi objek SharedPreferencesHelper: (disarankan dalam metode 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

Menempatkan nilai ke preferensi bersama

Cukup sederhana! Tidak seperti cara default (saat menggunakan kelas SharedPreferences) Anda TIDAK perlu menelepon .edit()dan .commit()kapan pun.

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

Itu dia! Nilai-nilai Anda disimpan dalam preferensi bersama.

Dapatkan nilai dari preferensi bersama

Sekali lagi, hanya satu panggilan metode sederhana dengan nama kunci.

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

Ini memiliki banyak fungsi tambahan lainnya

Periksa detail fungsionalitas yang diperluas, penggunaan dan instruksi instalasi dll pada Halaman Repositori GitHub .


Apakah saya menggunakan objek preferensi bersama yang sama untuk menyimpan semuanya, atau apakah saya membuat objek pref bersama baru untuk setiap bagian data yang berbeda?
Ruchir Baronia

Anda harus menggunakan yang sama sebanyak mungkin. Itulah inti dari pembuatan perpustakaan ini.
AndroidMechanic - Viral Patel

Hai, saya punya pertanyaan tentang Preferensi Bersama. Apakah Anda keberatan menjawabnya? 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.

Anda perlu menggunakan SharedPreferences di AdapterClass atau yang lainnya. saat itu cukup gunakan deklarasi ini dan gunakan pantat yang sama di atas.

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

//here context is your application context

untuk nilai string atau boolean

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

ambil data yang sama seperti di atas

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

2

2.Untuk Menyimpan dalam preferensi bersama

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

2.Untuk mengambil penggunaan yang sama

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

1

Di sini saya telah membuat kelas Helper untuk menggunakan preferensi di android.

Ini adalah kelas pembantu:

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

Untuk menyimpan dan mengambil variabel global dengan cara fungsi. Untuk menguji, pastikan Anda memiliki item Textview di halaman Anda, batalkan komentar dua baris dalam kode dan jalankan. Kemudian komentari dua baris lagi, dan jalankan.
Di sini id dari TextView adalah nama pengguna dan kata sandi.

Di setiap Kelas tempat Anda ingin menggunakannya, tambahkan dua rutinitas ini di akhir. Saya ingin rutin ini menjadi rutinitas global, tetapi tidak tahu caranya. Ini bekerja.

Variabel tersedia di mana-mana. Ini menyimpan variabel dalam "MyFile". Anda dapat mengubahnya dengan cara Anda.

Anda menyebutnya menggunakan

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

nama pengguna variabel akan diisi dengan "frans" dan kata sandi dengan "! 2 # 4%". Bahkan setelah restart mereka tersedia.

dan Anda mengambilnya menggunakan

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

di bawah seluruh kode grid.java saya

    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;
    }

    }

di bawah ini Anda menemukan item tampilan teks

<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

Saya telah menciptakan kelas Helper untuk membuat Hidup saya mudah. Ini adalah kelas generik dan memiliki banyak metode yang biasa digunakan dalam Aplikasi seperti Preferensi Bersama, Validitas Email, Format Waktu Tanggal. Salin kelas ini dalam kode Anda dan akses metode itu di mana pun Anda butuhkan.

 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;
}

}
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.