标签: android-sharedpreferences

从SharedPreferences中删除对象

我试图从sharedPreferences中删除一个特定的对象,我已经尝试了几次,但我不知道如何正确地做到这一点.

这些是我用来保存和排除SharedPreferences中的Disciplines的两种方法:

public void saveDisciplineData(Discipline discipline){
    editor.putString("Discipline" + count, gson.toJson(discipline));
    editor.commit();
    count++;
}

public void excludeDisciplineData(Discipline discipline){
    for (int i = 0; i < count ; i++) {
        Discipline d = gson.fromJson(sp.getString("discipline" + i, ""), new TypeToken<Discipline>() {
        }.getType());
        if (d.equals(discipline)){
            editor.remove("discipline" + i);
            break;
        }
    }

    editor.commit();
    count--;
}
Run Code Online (Sandbox Code Playgroud)

如何删除特定的学科对象?

java android android-sharedpreferences

1
推荐指数
1
解决办法
77
查看次数

Android sharedpreferences.getBoolean()返回错误的默认值

在此输入图像描述

在图片上,您可以看到布尔变量采用默认值,即使SharedPreferences右键中存在键值对.是什么导致这个?在代码中,这是onCreate方法的结尾.在此之后,该onMapReady方法被调用(from com.google.android.gms.maps.OnMapReadyCallback),其中我检查SAME布尔值,以查看是否我必须在地图上放置一些标记.在该方法中,getBoolean()行为是正确的,默认值被忽略.这对我没有任何意义,任何人都可以帮助我吗?

android android-sharedpreferences

1
推荐指数
1
解决办法
4370
查看次数

无法从MainActivity解析findPreference()?

当我尝试在MainActivity中初始化一个监听器时,我得到一个编译器错误无法解析方法findPreferenceOnSharedPreferencesChanged.根据这里的答案:

应该从实现PreferenceActivity接口的类中调用findPreference()

但我不明白这样做的代码是什么.如何摆脱编译器错误并成功设置侦听器以进行首选项更改?

MainActivity.java

 public class MainActivity extends FragmentActivity implements SharedPreferences.OnSharedPreferenceChangeListener {
        private SharedPreferences.OnSharedPreferenceChangeListener listener;

        @Override
        protected void onCreate(Bundle savedInstanceState) {
            ...
            //Test preference menu
            listener = new SharedPreferences.OnSharedPreferenceChangeListener() {
                public void onSharedPreferenceChanged(SharedPreferences prefs, String key) {
                    if (key.equals("pref_wood")) {
                        Preference woodPref = findPreference(key);  //COMPILER ERROR HERE
                        MainActivity.getGLSurfaceView().setTexture("");
                        // Set summary to be the user-description for the selected value
                        woodPref.setSummary(sharedPreferences.getString(key, ""));
                    }
                }
            }
        }
    }
Run Code Online (Sandbox Code Playgroud)

android android-preferences android-sharedpreferences

1
推荐指数
1
解决办法
2157
查看次数

从另一个活动接收共享SharedPreferences值的值

我有这个代码从edittext获取SharedPreferences的值,然后将其发送到其他活动,不知何故我不能从其他活动使用它我想念我的代码任何建议,提前谢谢

- 我的第一个活动,从edittext获取SharedPreferences,我想从它发送值到第二个活动

public class NationalId extends Activity {
public static final String MyPREFERENCES = "MyPrefs" ;
public static final String Name = "nameKey";
SharedPreferences sharedpreferences;

final Context context = this;
private Button button;
private TextView result;

public void onCreate(Bundle savedInstanceState) {

    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_national_id);

    // components from main.xml
    button = (Button) findViewById(R.id.button1);
    result = (TextView) findViewById(R.id.tv1);
    sharedpreferences = getSharedPreferences(MyPREFERENCES, Context.MODE_PRIVATE);

    // add button listener
    button.setOnClickListener(new View.OnClickListener() {

        @Override
        public void onClick(View arg0) {


            // get prompts.xml view
            LayoutInflater li = …
Run Code Online (Sandbox Code Playgroud)

android sharedpreferences android-sharedpreferences

1
推荐指数
1
解决办法
419
查看次数

如何在应用程序中使用getSharedPreferences?

我试着打电话getSharedPreferences申请......

public class App extends Application{
    public App() {
        SharedPreferences prefs = getSharedPreferences(SHARED_PREFERENCES_NAME, Context.MODE_PRIVATE);
    }
}
Run Code Online (Sandbox Code Playgroud)

......但我有一个NullPointerException:

java.lang.NullPointerException: Attempt to invoke virtual method
  'android.content.SharedPreferences
  android.content.Context.getSharedPreferences(java.lang.String, int)' 
  on a null object reference
Run Code Online (Sandbox Code Playgroud)

我也试过这个并得到了同样的例外:

Context con = getApplicationContext();
Run Code Online (Sandbox Code Playgroud)

我该怎么打电话getSharedPreferences

android android-sharedpreferences

1
推荐指数
1
解决办法
3841
查看次数

Android - 在特定用户下将图像上传到 Firebase

我对 Android 相当陌生,想制作一个允许用户使用 Firebase 存储上传图片的应用程序。在他们登录后,我将他们的 Uid 发送到 SharedPreferences,以便稍后在我的 imageupload 活动中检索它。我需要它,以便当图像被发送到 Firebase 时,它​​会被放在他们的用户 ID 的文件夹下。

这是我当前检索 Uid 的登录活动:

FirebaseAuth auth = FirebaseAuth.getInstance();
        FirebaseAuth.AuthStateListener authListener = new FirebaseAuth.AuthStateListener() {
            @Override
            public void onAuthStateChanged(@NonNull FirebaseAuth firebaseAuth) {
                FirebaseUser firebaseUser = firebaseAuth.getCurrentUser();
                if (firebaseUser != null) {
                    String userId = firebaseUser.getUid();
                    sharedPref = getPreferences(MODE_PRIVATE);
                    SharedPreferences.Editor editor = sharedPref.edit();
                    editor.putString("firebasekey", userId);
                    editor.commit();
Run Code Online (Sandbox Code Playgroud)

这是我的图片上传活动:

sharedPref = getPreferences(MODE_PRIVATE);
    String UserId = sharedPref.getString("firebasekey", "1");
    StorageReference storageRef= FirebaseStorage.getInstance().getReference();
    StorageReference mountainsRef = storageRef.child("uploads/"+UserId+System.currentTimeMillis());
Run Code Online (Sandbox Code Playgroud)

帮助将不胜感激。

android firebase firebase-authentication firebase-realtime-database android-sharedpreferences

1
推荐指数
1
解决办法
3164
查看次数

StrictMode:创建SharedPreference时的StrictModeDiskReadViolation

我有一个带有匕首设置的项目,具有以下提供者方法:

@Module(...)
abstract class AppModule {

  @Module
  companion object {
    ...
    @Provides
    @Singleton
    @JvmStatic
    fun provideSharedPreferences(@AppContext context: Context): SharedPreferences = PreferenceManager.getDefaultSharedPreferences(context)
  }

  @Binds
  @AppContext
  @Singleton
  abstract fun provideAppContext(application: Application): Context

}
Run Code Online (Sandbox Code Playgroud)

这是来自应用程序的代码onCreate():

override fun onCreate() {
  if (BuildConfig.DEBUG) {
    StrictMode.setThreadPolicy(StrictMode.ThreadPolicy.Builder()
        .detectAll()
        .penaltyLog()
        .penaltyDialog()
        .build())

    StrictMode.setVmPolicy(StrictMode.VmPolicy.Builder()
        .detectAll()
        .penaltyLog()
        .build())

    Timber.plant(Timber.DebugTree())
  }
  ...
  super.onCreate()
}
Run Code Online (Sandbox Code Playgroud)

在API 27模拟器上运行项目会导致以下行为:

使用以下日志:

D/StrictMode:StrictMode策略违规; 〜duration = 275 ms:android.os.StrictMode $ StrictModeDiskReadViolation:policy = 196671 violation = 2 at android.os.StrictMode $ AndroidBlockGuardPolicy.onReadFromDisk(StrictMode.java:1440)at java.io.UnixFileSystem.checkAccess(UnixFileSystem.java: 251)在java.io.File.exists(File.java:807)的android.app.ContextImpl.getDataDir(ContextImpl.java:2197)在Android上的android.app.ContextImpl.getPreferencesDir(ContextImpl.java:517).在Android.pretent.PreferenceManager.getDefaultSharedPreferences的android.content.ContextWrapper.getSharedPreferences(ContextWrapper.java:167)的android.app.ContextImpl.getSharedPreferences(ContextImpl.java:368)上的app.ContextImpl.getSharedPreferencesPath(ContextImpl.java:714) (PreferenceManager.java:526)com.some.package.di.module.AppModule $ Companion.provideSharedPreferences(AppModule.kt:112)...

这意味着,是 …

android disk-io kotlin android-sharedpreferences android-strictmode

1
推荐指数
1
解决办法
1622
查看次数

java.lang.Boolean不能强制转换为java.lang.Integer SharedPreference

我正在尝试从SharedPreference读取Integer数据

    public Integer readIntData(String key,int defaultValue){
           mSharedPref = context.getApplicationContext().getSharedPreferences(context.getString(R.string.shared_pref_app),Context.MODE_PRIVATE);
           return mSharedPref.getInt(key,defaultValue);
    }
Run Code Online (Sandbox Code Playgroud)

当我打电话 int value = readIntData("key",1000);

总是抛出异常

java.lang.Boolean不能强制转换为java.lang.Integer

android android-sharedpreferences

1
推荐指数
1
解决办法
860
查看次数

getSharedPreferences() 中的 String 参数有什么作用?

编辑:提供的“重复”不能解决我的问题,因为它没有完全回答我的问题。(关于第二个参数的信息丢失)。


这个问题旨在为新的Android开发人员清除信息,而不是解决我自己的问题。请重新考虑否决票。

所以,这是方法:

getSharedPreferences(string, Context.MODE_PRIVATE);
Run Code Online (Sandbox Code Playgroud)

我真的无法理解第一个参数的作用。它有什么作用?如果我们保存东西时SharedPreferences使用密钥,为什么会有第一个参数?

parameters android android-sharedpreferences

0
推荐指数
1
解决办法
3223
查看次数

我想使用EasyPreferences库但出现此错误:请在Application类onCreate中调用Builder.setContext().build()

我想使用EasyPreferences库:https://github.com/Pixplicity/EasyPreferences

但是出现了这个错误:请在Application类onCreate中调用Builder.setContext().build()

PrefsApplication.java

  package ir.korandco.irkhoone_co_app.utility;

import android.app.Application;
import android.content.ContextWrapper;

import com.pixplicity.easyprefs.library.Prefs;

public class PrefsApplication extends Application {

    @Override
    public void onCreate() {
        super.onCreate();
        // Initialize the Prefs class
        new Prefs.Builder()
                .setContext(this)
                .setMode(ContextWrapper.MODE_PRIVATE)
                .setPrefsName(getPackageName())
                .setUseDefaultSharedPreference(true)
                .build();
    }

}
Run Code Online (Sandbox Code Playgroud)

MainActivity.java

 package ir.korandco.irkhoone_co_app.activity;

import android.content.Intent;
import android.os.Bundle;
import android.support.v7.app.ActionBarActivity;
import android.util.Log;
import android.view.Menu;
import android.view.MenuInflater;
import android.view.MenuItem;
import android.view.View;
import android.widget.Button;
import android.widget.ImageButton;
import android.widget.Toast;

import com.daimajia.slider.library.Animations.DescriptionAnimation;
import com.daimajia.slider.library.Indicators.PagerIndicator;
import com.daimajia.slider.library.SliderLayout;
import com.daimajia.slider.library.SliderTypes.BaseSliderView;
import com.daimajia.slider.library.SliderTypes.TextSliderView;
import com.daimajia.slider.library.Tricks.ViewPagerEx;
import com.pixplicity.easyprefs.library.Prefs;

import …
Run Code Online (Sandbox Code Playgroud)

android android-sharedpreferences

-1
推荐指数
1
解决办法
443
查看次数

计算回收站视图中项目列表中项目的总价

我想计算 List 中物品的价格并将值存储在sharedpreference. 每个项目都有一个采用双精度形式的价格。问题是当我使用我的方法时,它只考虑列表中的一个项目并计算该值。我正在使用 aNumberPicker来更改项目的数量。

这是我的适配器,用于处理将显示在 上的项目列表RecyclerView

public class CartAdapter extends RecyclerView.Adapter<CartAdapter.ViewHolder> {
    private List<SingleItem> items;
    private SessionManager sessionManager;
    private Context context;
    private int pos;

    public CartAdapter() {
    }

    public CartAdapter(Context context, List<SingleItem> items) {
        this.items = items;
        this.context = context;
        sessionManager = new SessionManager(context);

    }

    @Override
    public ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
        View view = LayoutInflater.from(parent.getContext()).inflate(R.layout.cartitem, parent, false);
        return new ViewHolder(view);
    }

    @Override
    public void onBindViewHolder(final ViewHolder holder, final int position) { …
Run Code Online (Sandbox Code Playgroud)

android for-loop android-recyclerview android-sharedpreferences

-3
推荐指数
1
解决办法
1万
查看次数