1

したがって、私が開発しているアプリケーションでは、sharedpreferences を使用してデータを保存したいと考えています。この場合、ユーザーが選択した言語を保存したいと考えています。これは A 番号によって行われます。これは保存されますが、メニュー ページでこの値を使用しようとすると、常にクラッシュします。

super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main_menu);
    Button button1 = (Button) findViewById(R.id.button1);
    Button button2 = (Button) findViewById(R.id.button2);
    Button button3 = (Button) findViewById(R.id.button3);
    Button button4 = (Button) findViewById(R.id.button4);
    Button button5 = (Button) findViewById(R.id.button5);
    SharedPreferences sp = PreferenceManager.getDefaultSharedPreferences(this);
    int taal=sp.getInt("taal", 4);
    if(taal==1){
        String tekst="Nieuw Spel";
        button1.setText(tekst);
        //button1.setText("Nieuw Spel");
        //button2.setText("Statestieken");
        //button3.setText("Opties");
        //Languege.MenuText(button1, button2, button3, taal);
        button1.setText(taal);
        button4.setVisibility(Button.GONE);
        button5.setVisibility(Button.GONE);
    }

そして、これはエラーのお尻のために戻ってきます。どこで何か間違っているのか本当にわかりません

01-20 16:11:05.535: E/AndroidRuntime(4308): FATAL EXCEPTION: main
01-20 16:11:05.535: E/AndroidRuntime(4308): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.stevedc.thinklogic/com.stevedc.thinklogic.MainMenu}: android.content.res.Resources$NotFoundException: String resource ID #0x1
01-20 16:11:05.535: E/AndroidRuntime(4308):     at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1967)
01-20 16:11:05.535: E/AndroidRuntime(4308):     at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1992)
01-20 16:11:05.535: E/AndroidRuntime(4308):     at android.app.ActivityThread.access$600(ActivityThread.java:127)
01-20 16:11:05.535: E/AndroidRuntime(4308):     at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1158)
01-20 16:11:05.535: E/AndroidRuntime(4308):     at android.os.Handler.dispatchMessage(Handler.java:99)
01-20 16:11:05.535: E/AndroidRuntime(4308):     at android.os.Looper.loop(Looper.java:137)
01-20 16:11:05.535: E/AndroidRuntime(4308):     at android.app.ActivityThread.main(ActivityThread.java:4441)
01-20 16:11:05.535: E/AndroidRuntime(4308):     at java.lang.reflect.Method.invokeNative(Native Method)
01-20 16:11:05.535: E/AndroidRuntime(4308):     at java.lang.reflect.Method.invoke(Method.java:511)
01-20 16:11:05.535: E/AndroidRuntime(4308):     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:784)
01-20 16:11:05.535: E/AndroidRuntime(4308):     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:551)
01-20 16:11:05.535: E/AndroidRuntime(4308):     at dalvik.system.NativeStart.main(Native Method)
01-20 16:11:05.535: E/AndroidRuntime(4308): Caused by: android.content.res.Resources$NotFoundException: String resource ID #0x1
01-20 16:11:05.535: E/AndroidRuntime(4308):     at android.content.res.Resources.getText(Resources.java:247)
01-20 16:11:05.535: E/AndroidRuntime(4308):     at android.widget.TextView.setText(TextView.java:3495)
01-20 16:11:05.535: E/AndroidRuntime(4308):     at com.stevedc.thinklogic.MainMenu.onCreate(MainMenu.java:33)
01-20 16:11:05.535: E/AndroidRuntime(4308):     at android.app.Activity.performCreate(Activity.java:4465)
01-20 16:11:05.535: E/AndroidRuntime(4308):     at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1049)
01-20 16:11:05.535: E/AndroidRuntime(4308):     at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1931)
4

1 に答える 1

3

変化する

button1.setText(taal);

そうです

button1.setText(String.valueOf(taal));

整数 ( taal) を渡すと、Android はリソース ID を見つけようとして失敗します。

于 2013-01-20T15:26:47.627 に答える