当前位置: 首页 > 知识库问答 >
问题:

sharedPref中的静态方法使我的应用程序崩溃

齐乐
2023-03-14

我正在使用SharedPref在活动之间传递字符串。我正试图使我的代码更有效,但我有一个我无法解决的问题。

MainActivity.Class中的我的代码:

@override protected void onCreate(Bundle savedInstanceState){super.onCreate(savedInstanceState);setContentView(r.layout.activity_main);

    //if statement for the first run of the app, else statement uses the defined city.
    if (SharedPref.getCity().equals("")) {

    } else {
        cityText = (TextView) findViewById(R.id.prefCity);
        cityText.setText(SharedPref.getCity());
    }
public class SharedPref {
private static SharedPreferences mSharedPreferences;

//sharedPref Manager.
public SharedPref(final Context context) {
    mSharedPreferences = PreferenceManager.getDefaultSharedPreferences(context);

}

public static void setCity(String item) {
    mSharedPreferences.edit().putString("city", item).apply();
}

public static String getCity() {
    return mSharedPreferences.getString("city", "");
}
SharedPref sharedPref = new SharedPref(getBaseContext());

共有1个答案

陆斌
2023-03-14

最初,共享首选项甚至不包含var“city”,所以最初条件应该是sharepref.contains(“city”),然后在进一步的迭代中检查它的值。

 类似资料:
  • 这就是它崩溃的地方 01-12 13:44:12.571 296 26-29688/ca.dti.grounded.app E/OtherService:AsynchChecker 287:73 java.lang.IllegalStateException:Parcel已完成!在android.os.binderproxy.transactNative(本机方法)在android.os.bind

  • 问题内容: 假设我有一个实用程序类DateUtil(请参见下文)。若要使用此方法,调用者方法将使用DateUtils.getDateAsString(aDate)。删除static修饰符并使DateUtil成为spring bean(请参见DateUtilsBean)并将其注入到调用类中还是将其保持原样会更好吗? 春豆版本 问题答案: 我不这么认为。DateUtils类听起来像是一个纯实用程序类,

  • 在过去的一周左右,我一直在绞尽脑汁,真的需要一些帮助。我的apk构建得很好,在linux上运行main.py工作得很好,然而,当在我的galaxy s6上运行apk时,它在打开后不久就崩溃了。我尝试更新buildozer,kivy,确保所有的依赖关系都得到满足,并包含在规范文件中(如下)。以及尝试无数其他解决方案,如更改api、更新所有构建工具等。 有人有什么想法吗?这里有一个到logcat的链接

  • 注意:在我添加广告之前,我的应用程序运行良好,使用相同的方法 当我试图将adview添加到我的应用程序时,它会使我的应用程序崩溃,所以我删除了它,但仍然给我这个这是logcat 10-12 21:33:19.765 4993-4993/com。fm360。almorfis E/AndroidRuntime:致命异常:主进程:com。fm360。阿尔莫菲斯,PID:4993爪哇。lang.Runti

  • 更新到QRCodeReaderView最新版本后,我的应用程序崩溃仍然没有停止,不同的问题得到。致命异常:java.lang.RuntimeException:无法连接到java:580)在android.view.choreographer.doFrame(choreographer.java:550)在android.view.choreographer$FrameDisplayEventRe

  • 我有一个很短的倒计时(最少3秒,最多10秒),用来控制屏幕上显示新的数学问题。每隔1秒,倒计时应该检查用户是否在编辑文本中输入了正确答案。以下是我的代码: 我遇到的问题是,这个倒计时程序一创建,应用程序就会崩溃。出于某种原因,似乎使应用程序崩溃,我认为这是因为倒计时无法在1秒内完成所有这些。我尝试将其拆分为两种方法,如下所示: 然后像这样调用onTick()中的givenAnswerToInt()