Android 使用SharedReferences保存变量

Android 使用SharedReferences保存变量,android,sharedpreferences,Android,Sharedpreferences,我想用SharedReferences记录数据我想注册RecyclerView中的“ChipNumberRooms”键,我选择了它。但它不保存数据。当我单击RecyclerView时,我希望它注册 @Override protected void onCreate(Bundle savedInstanceState) { SharedPreferences prefs = getSharedPreferences("...", Context.MODE_PRIVATE);

我想用SharedReferences记录数据我想注册RecyclerView中的“ChipNumberRooms”键,我选择了它。但它不保存数据。当我单击RecyclerView时,我希望它注册

  @Override
    protected void onCreate(Bundle savedInstanceState) {
 SharedPreferences prefs = getSharedPreferences("...", Context.MODE_PRIVATE);

        final String chipNumberNew =prefs.getString("ChipNumberrr", "0");
}

      recyclerViewNew.addOnItemTouchListener(new ProductsNewAdapter(this,
                recyclerViewNew, new ClickListener() {
            @Override
            public void onClick(View view, final int position) {

                DatabaseReference mDatabase = FirebaseDatabase.getInstance().getReference();

DatabaseReference refRooms = mDatabase.child(chipNumberNew).child("Rooms");

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

                editor.putString("ChipNumberRooms", chipNumberNew);
                editor.commit();

                refRooms.addValueEventListener(new ValueEventListener() {
                    @Override
                    public void onDataChange(@NonNull DataSnapshot dataSnapshot) {
              for (DataSnapshot snapshot : dataSnapshot.getChildren()){
                     ....
                        }
                    }

                    @Override
                    public void onCancelled(DatabaseError databaseError) {
                    }
                });
            }

            @Override
            public void onLongClick(View view, int position) {

            }
        }));

首先,创建一个AppPreference类,并在类中创建一些getter和setter,如下所示:-

public class AppPrefrences {

            private static SharedPreferences mPrefs;
            private static SharedPreferences.Editor mPrefsEditor;


    public static String getUserName(Context ctx) {
            mPrefs = PreferenceManager.getDefaultSharedPreferences(ctx);
            return mPrefs.getString("userName", "");
        }

        public static void setUserName(Context ctx, String value) {
            mPrefs = PreferenceManager.getDefaultSharedPreferences(ctx);
            mPrefsEditor = mPrefs.edit();
            mPrefsEditor.putString("userName", value);
            mPrefsEditor.commit();
        }

public static void clearAllPreferences(Context ctx) {
        mPrefs = PreferenceManager.getDefaultSharedPreferences(ctx);
        mPrefsEditor = mPrefs.edit();
        mPrefsEditor.clear();
        mPrefsEditor.commit();
    }
        }

这是我的代码更改代码,根据您的需要在方法中设置您的值,然后在中为获取值调用获取方法

检查以下链接如果您有任何疑问,请留下注释