android-从不同的 activity 中访问 SharedPreferences

问题描述

从不同的 activity 中访问 SharedPreferences

在第一个activity (MainActivity)中,我通过 SharedPreferences 保存数据:

Editor editor = mGameSettings.edit();
                editor.putString(GAME_PREFERENCES_SHOP, Shops.get(lv.getCheckedItemPosition()));
                editor.commit();

当重启程序后,我可以从MainActivity 中读取这个数据:

if (mGameSettings.contains(GAME_PREFERENCES_SHOP)) 

                Tv2.setText(mGameSettings.getString(GAME_PREFERENCES_SHOP, ""));

如何从其它的activity中读取和编辑这个SharedPreferences?

解决方案

在另一个 activity 中添加下面的代码:

SharedPreferences sp = PreferenceManager.getDefaultSharedPreferences(this);
if (sp.contains(MainActivity.GAME_PREFERENCES_SHOP)) //hoping that GAME_PREFERENCES_SHOP is a static constant defined in MainActivity
                Tv2.setText(sp.getString(MainActivity.GAME_PREFERENCES_SHOP, ""));

解决方案二:

用下面的代码从不同的程序中获取优先值

 Context launcherContext = null;
    try {
        final int flags = Context.CONTEXT_IGNORE_SECURITY | Context.CONTEXT_INCLUDE_CODE;
        launcherContext = getApplicationContext().createPackageContext("com.another.package", flags);
    } catch (final NameNotFoundException e) {
        return ;
    }

    final SharedPreferences pref = launcherContext.getSharedPreferences(
            "prefname",
            Context.MODE_WORLD_READABLE | Context.MODE_MULTI_PROCESS);

    final String prefValue = pref.getString("prefname", null);
    Log.i("test", prefValue);
时间: 2024-11-01 05:10:46

android-从不同的 activity 中访问 SharedPreferences的相关文章

android-不同 activity 中的 SharedPreferences

问题描述 不同 activity 中的 SharedPreferences 我用下面的代码从 activity A 中加载 SharedPreferences: private void SavePreferences(String key String value){ SharedPreferences sharedPreferences = PreferenceManager.getDefaultSharedPreferences(this); SharedPreferences.Edito

android-如何在当前的activity中保存数据,下次可以在相同的activity中访问?

问题描述 如何在当前的activity中保存数据,下次可以在相同的activity中访问? 在一个列表中有一些数据的列表,我想在点击的时候,把它发送到其它的 activity. 使用 intent 发送数据 Intent i = new Intent(MainActivity.this,AppDiscription.class); i.putExtra("NAME", s); i.putExtra("AMT", Appname); i.putExtra("

android-Android 在XML文件中控件监听,在Activity中实现不了,有异常IllegalStateException

问题描述 Android 在XML文件中控件监听,在Activity中实现不了,有异常IllegalStateException activity_main.xml android:id="@+id/btLogin" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="登陆" android:layout_

Android应用中使用SharedPreferences类存储数据的方法_Android

在Android系统中提供了多种存储技术.通过这些存储技术可以将数据存储在各种存储介质上.比如sharedpreferences可以将数据保存着应用软件的私有存储区,这些存储区的数据只能被写入这些数据的软件读取.当然Android还支持文件存储.SQLite数据库和Content Provider.在这里我们将对sharedpreferences存储方式进行介绍. SharedPreferences是一种轻量级的数据存储方式,学过Web开发的同学,可以想象它是一个小小的Cookie.它可以用键值

android中使用SharedPreferences进行数据存储的操作方法_Android

很多时候我们开发的软件需要向用户提供软件参数设置功能,例如我们常用的QQ,用户可以设置是否允许陌生人添加自己为好友.对于软件配置参数的保存,如果是window软件通常我们会采用ini文件进行保存,如果是 j2se应用,我们会采用properties属性文件或者xml进行保存.如果是Android应用,我们最适合采用什么方式保存软件配置参数呢?Android 平台给我们提供了一个SharedPreferences类,它是一个轻量级的存储类,特别适合用于保存软件配置参数.使用 SharedPrefe

Android应用中使用SharedPreferences类存储数据的方法

在Android系统中提供了多种存储技术.通过这些存储技术可以将数据存储在各种存储介质上.比如sharedpreferences可以将数据保存着应用软件的私有存储区,这些存储区的数据只能被写入这些数据的软件读取.当然Android还支持文件存储.SQLite数据库和Content Provider.在这里我们将对sharedpreferences存储方式进行介绍. SharedPreferences是一种轻量级的数据存储方式,学过Web开发的同学,可以想象它是一个小小的Cookie.它可以用键值

Android中使用SharedPreferences完成记住账号密码的功能

效果图: 记住密码后,再次登录就会出现账号密码,否则没有. 分析: SharedPreferences可将数据存储到本地的配置文件中 SharedPreferences会记录CheckBox的状态,如果CheckBox被选,则将配置文件中记录的账号密码信息回馈给账号密码控件,否则清空. SharedPreferences使用方法: 1.创建名为config的配置文件,并且私有 private SharedPreferences config; config=getSharedPreference

android-从fragment在父activity中我怎么能够访问UI elements

问题描述 从fragment在父activity中我怎么能够访问UI elements 父activity布局 <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:

Android学习笔记--使用剪切板在Activity中传值示例代码_Android

在Activity之间传递数据还可以利用一些技巧,不管windows还是Linux操作系统,都会支持一种叫剪切板的技术,也就是某一个程序将一些数据复制到剪切板上,然后其他的任何程序都可以从剪切板中获取数据,在Android系统中也存在此技术. 使用剪切板会用到,ClipboardManager对象,这个对用剪切板会用到,ClipboardManager象用来操作剪切板,但是没有提供public的构造函数(单例模式),需要使用Activity.getSystemService(Context.CL