保存和加载随机数不起作用

时间:2016-09-12 07:40:50

标签: java android

我正在尝试在应用的第一次启动时生成一个随机数,并在文本视图中显示它。此外,我需要保存和加载随机文本以便下次启动应用程序。

所以这是我正在尝试的代码:

SharedPreferences prefs = null;


@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

     prefs = getSharedPreferences("com.mycompany.myAppName", MODE_PRIVATE);

       onResume(); {
         super.onResume();

         if (prefs.getBoolean("firstrun", true)) {

              Random r = new Random();
               int i1 = r.nextInt(80 - 65) + 65;

               SharedPreferences sp = getSharedPreferences("your_prefs", Activity.MODE_PRIVATE);
               SharedPreferences.Editor editor = sp.edit();
               editor.putInt("random id", i1);
               editor.commit();


             prefs.edit().putBoolean("firstrun", false).commit();

         }
     }

       SharedPreferences sp = getSharedPreferences("your_prefs", Activity.MODE_PRIVATE);
       int myIntValue = sp.getInt("random id", -1);


       TextView iddd = (TextView) findViewById(R.id.id);
       iddd.setText(myIntValue);
      }

但是这段代码不起作用...... 问题是什么?我做错了什么?

日志:

09-12 12:27:27.203: E/test(10532): Exception
09-12 12:27:27.205: E/AndroidRuntime(10532): FATAL EXCEPTION: main
09-12 12:27:27.205: E/AndroidRuntime(10532): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.hhh/com.example.hhh.MainActivity}: android.content.res.Resources$NotFoundException: String resource ID #0x43
09-12 12:27:27.205: E/AndroidRuntime(10532):    at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2306)
09-12 12:27:27.205: E/AndroidRuntime(10532):    at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2358)
09-12 12:27:27.205: E/AndroidRuntime(10532):    at android.app.ActivityThread.access$600(ActivityThread.java:156)
09-12 12:27:27.205: E/AndroidRuntime(10532):    at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1340)
09-12 12:27:27.205: E/AndroidRuntime(10532):    at android.os.Handler.dispatchMessage(Handler.java:99)
09-12 12:27:27.205: E/AndroidRuntime(10532):    at android.os.Looper.loop(Looper.java:153)
09-12 12:27:27.205: E/AndroidRuntime(10532):    at android.app.ActivityThread.main(ActivityThread.java:5299)
09-12 12:27:27.205: E/AndroidRuntime(10532):    at java.lang.reflect.Method.invokeNative(Native Method)
09-12 12:27:27.205: E/AndroidRuntime(10532):    at java.lang.reflect.Method.invoke(Method.java:511)
09-12 12:27:27.205: E/AndroidRuntime(10532):    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:833)
09-12 12:27:27.205: E/AndroidRuntime(10532):    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:600)
09-12 12:27:27.205: E/AndroidRuntime(10532):    at dalvik.system.NativeStart.main(Native Method)
09-12 12:27:27.205: E/AndroidRuntime(10532): Caused by: android.content.res.Resources$NotFoundException: String resource ID #0x43
09-12 12:27:27.205: E/AndroidRuntime(10532):    at android.content.res.Resources.getText(Resources.java:242)
09-12 12:27:27.205: E/AndroidRuntime(10532):    at android.widget.TextView.setText(TextView.java:3805)
09-12 12:27:27.205: E/AndroidRuntime(10532):    at com.example.hhh.MainActivity.onCreate(MainActivity.java:78)
09-12 12:27:27.205: E/AndroidRuntime(10532):    at android.app.Activity.performCreate(Activity.java:5182)
09-12 12:27:27.205: E/AndroidRuntime(10532):    at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1081)
09-12 12:27:27.205: E/AndroidRuntime(10532):    at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2270)
09-12 12:27:27.205: E/AndroidRuntime(10532):    ... 11 more

1 个答案:

答案 0 :(得分:0)

android.content.res.Resources$NotFoundException: String resource ID #0x43

iddd.setText(myIntValue);

使用例如

iddd.setText(String.valueOf(myIntValue));

setText(int)期望看到资源字符串ID; setText(CharSequence)是您要呼叫的人。