Как сохранить изменения с помощью SharedPreferences?

import.java.io.*;
import.java.util.*;

public class Test {
    public static void main(String[] args) {
        int rmv,rmv1;

        //this R.M.VIVEK complete bitwise program for java
        Scanner vivek=new Scanner();
        System.out.println("ENTER THE X value");
        rmv = vivek.nextInt();
        System.out.println("ENTER THE y value");
        rmv1 = vivek.nextInt();

        System.out.println("AND table based\t(&)rmv=%d,vivek=%d=%d\n",rmv,rmv1,rmv&rmv1);//11=1,10=0
        System.out.println("OR table based\t(&)rmv=%d,vivek=%d=%d\n",rmv,rmv1,rmv|rmv1);//10=1,00=0
        System.out.println("xOR table based\t(&)rmv=%d,vivek=%d=%d\n",rmv,rmv1,rmv^rmv1);
        System.out.println("LEFT SWITH based to %d>>4=%d\n",rmv<<4);
        System.out.println("RIGTH SWITH based to %d>>2=%d\n",rmv>>2);

        for(int v=1;v<=10;v++)
            System.out.println("LIFT SWITH based to (-NAGATIVE VALUE) -1<<%d=%p\n",i,-1<<1+i);
    }
}
0
задан Ahmad Dalao 29 January 2019 в 10:02
поделиться

4 ответа

В общих настройках данные хранятся в формате «ключ-значение». Насколько я понимаю, вам нужно сохранить два поля, и это будет примерно так:

“booking: true”
“bookmarkImageResource: 15670341274”

Вот удобный способ сделать это:

Шаг первый [ 1110] - создайте новый класс SharedPrefs:

public class SharedPrefs {

private static final String SHARED_PREFERENCES_NAME = "user_prefs";
private static final String BOOKING_INFO = "booking";
private static final String BOOKMARK_IMAGE_RESOURCE_INFO = "bookmarkImageResource";
private final SharedPreferences prefs;

public SharedPrefs(Context context) {
    prefs = context.getSharedPreferences(SHARED_PREFERENCES_NAME, Context.MODE_PRIVATE);
}

public boolean saveBookingInfo(String bookingInfo, String bookmarkImageResource) {
    return prefs.edit()
            .putString(BOOKING_INFO, bookingInfo)
            .putString(BOOKMARK_IMAGE_RESOURCE_INFO, bookmarkImageResource)
            .commit();
}

public Pair<String, String> getBookingInfo() {
    return new Pair<String, String>(
            prefs.getString(BOOKING_INFO, ""),
            prefs.getString(BOOKMARK_IMAGE_RESOURCE_INFO, ""));
}

public void clearAll() {
    prefs.edit().clear().apply();
}

}

Шаг второй - используйте свой класс везде, где вам нужно сохранять, получать или очищать данные! В вашем случае:

    SharedPrefs prefs = new SharedPrefs(this);  // or getActivity() instead of this if we are in a fragment      
    if(bookmarking){
        bookmark.setImageResource(R.drawable.ic_bookmarked_blue);
        bookmarking=false;
    }
    else{
        bookmarking=true;
        bookmark.setImageResource(R.drawable.ic_bookmark);
    }
    prefs.saveBookingInfo(String.valueOf(bookmarking), String.valueOf(bookmark));

Надеюсь, это поможет вам =)

Хорошего дня и удачи. Удачного кодирования!

0
ответ дан Svetlana Rozhkova 29 January 2019 в 10:02
поделиться

Использовать SharedPreferences очень просто. Вам необходимо определить ключ, который вы будете использовать для получения данных позже. Вы можете хранить строки, целые числа, числа с плавающей запятой, логические значения ... Вы должны предоставить контекст.

Context context = getApplicationContext();

Для записи данных используйте этот код.

SharedPreferences mPrefs = context.getSharedPreferences("YourApp", Context.MODE_PRIVATE);
SharedPreferences.Editor editor = mPrefs.edit();
editor.putString("color", "blue");
editor.apply();

Для извлечения данных используйте это

SharedPreferences mPrefs = context.getSharedPreferences("YourApp", Context.MODE_PRIVATE);
String color = mPrefs.getString("color", "defaultValue");

Вы можете легко изменить тип с String на другие типы, которые могут наилучшим образом соответствовать вашим потребностям.

Надеюсь, это поможет.

0
ответ дан François-Joseph Lacroix 29 January 2019 в 10:02
поделиться

Надеюсь, это поможет вам

 SharedPreferences sharedPrefs = getSharedPreferences("SharedPreferences_Name", Context.MODE_PRIVATE);
    private ImageView bookmark;
    bookmark = (ImageView) findViewById(R.id.imageView_bookmark_readIt);
    private boolean bookmarking = sharedPrefs.getBoolean("bookmarking",true);//To get value that saved in SharedPreferences 
    if(bookmarking){
        bookmark.setImageResource(R.drawable.ic_bookmarked_blue);
    }
    else{
        bookmark.setImageResource(R.drawable.ic_bookmark);
        //Toast.makeText(getApplicationContext(), "Changed", Toast.LENGTH_LONG).show();
    }
    bookmark.setOnClickListener(new View.OnClickListener(){

       // private boolean bookmarking = true;

        public void onClick(View v){

            if(bookmarking){
                bookmark.setImageResource(R.drawable.ic_bookmarked_blue);
                bookmarking=false;
                SharedPreferences.Editor editor = getSharedPreferences("SharedPreferences_Name", 0).edit();
                editor.putBoolean("bookmarking", bookmarking);
                editor.apply();
            }
            else{
                bookmarking=true;
                bookmark.setImageResource(R.drawable.ic_bookmark);
                //Toast.makeText(getApplicationContext(), "Changed", Toast.LENGTH_LONG).show();
                SharedPreferences.Editor editor = getSharedPreferences("SharedPreferences_Name", 0).edit();
                editor.putBoolean("bookmarking", bookmarking);
                editor.apply();
            }
        });
0
ответ дан Praveen 29 January 2019 в 10:02
поделиться
 /**
 * Get a shared preferences file named Const.SHARED_PREFERENCES_FILE_NAME, keys added to it must be unique
 *
 * @param ctx
 * @return the shared preferences
 */
public static SharedPreferences getSharedPreferences(Context ctx) {
    return ctx.getSharedPreferences(Const.SHARED_PREFERENCES_FILE_NAME, Context.MODE_PRIVATE);
}

public static void cacheBoolean(Context ctx, String k, Boolean v) {
    SharedPreferences prefs = getSharedPreferences(ctx);
    prefs.edit().putBoolean(k, v).apply();
}

public static Boolean getCachedBoolean(Context ctx, String k, Boolean defaultValue) {
    SharedPreferences prefs = getSharedPreferences(ctx);
    return prefs.getBoolean(k, defaultValue);
}

public static void cacheString(Context ctx, String k, String v) {
    SharedPreferences prefs = getSharedPreferences(ctx);
    prefs.edit().putString(k, v).apply();
}

public static String getCachedString(Context ctx, String k, String defaultValue) {
    SharedPreferences prefs = getSharedPreferences(ctx);
    return prefs.getString(k, defaultValue);
}

public static void cacheInt(Context ctx, String k, int v) {
    SharedPreferences prefs = getSharedPreferences(ctx);
    prefs.edit().putInt(k, v).apply();
}

public static int getCachedInt(Context ctx, String k, int defaultValue) {
    SharedPreferences prefs = getSharedPreferences(ctx);
    return prefs.getInt(k, defaultValue);
}

public static void clearCachedKey(Context context, String key) {
    getSharedPreferences(context).edit().remove(key).apply();
}
0
ответ дан Ahmed Karam 29 January 2019 в 10:02
поделиться
Другие вопросы по тегам:

Похожие вопросы: