0

I'm implementing shared preferences, and i wanna make appear what was saved before. For this, i'm trying to set the editboxes text, even with the null preferences file. I'm not sure if is possible.

public class PerfilActivity extends Activity {

    public static final String PERFIL_FILE = "MyPreferencesFile";

    private Button btn_historico, btn_actualiza;
    private EditText ed_nome, ed_altura, ed_peso, ed_gordura;
    private SharedPreferences settings;
    private SharedPreferences.Editor editor;

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_perfil);



        btn_actualiza = (Button)findViewById(id.btn_atualizar);
        btn_historico = (Button)findViewById(id.btn_verHistorico);
        ed_nome = (EditText)findViewById(id.ed_nome);
        ed_altura = (EditText)findViewById(id.ed_altura);
        ed_peso = (EditText)findViewById(id.ed_peso);
        ed_gordura = (EditText)findViewById(id.ed_gorduraCorporal);


        ed_nome.setText(settings.getString("nome", "(Insira o nome)"));
        ed_altura.setText(settings.getInt("altura", 1232));
        ed_peso.setText(settings.getInt("peso", 222));
        ed_gordura.setText(settings.getInt("gordura", 123));

        btn_actualiza.setOnClickListener(new OnClickListener() {

            @Override
            public void onClick(View v) {
                settings = getSharedPreferences(PERFIL_FILE, 0);
                editor = settings.edit();
                editor.putString("nome", ed_nome.getText().toString());
                editor.putInt("altura", Integer.parseInt(ed_altura.getText().toString()));
                editor.putInt("peso", Integer.parseInt(ed_peso.getText().toString()));
                editor.putInt("gordura", Integer.parseInt(ed_gordura.getText().toString()));
                showToast("Valores actualizados com sucesso!", 1);
                editor.commit();
            }
        });
    }
}

LogCat

01-03 04:06:24.505: E/AndroidRuntime(31419): FATAL EXCEPTION: main
01-03 04:06:24.505: E/AndroidRuntime(31419): Process: com.AMOV.mr.fit, PID: 31419
01-03 04:06:24.505: E/AndroidRuntime(31419): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.AMOV.mr.fit/com.AMOV.mr.fit.PerfilActivity}: android.content.res.Resources$NotFoundException: String resource ID #0x7b
01-03 04:06:24.505: E/AndroidRuntime(31419):    at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2212)
01-03 04:06:24.505: E/AndroidRuntime(31419):    at android.app.ActivityThread.startActivityNow(ActivityThread.java:2045)
01-03 04:06:24.505: E/AndroidRuntime(31419):    at android.app.LocalActivityManager.moveToState(LocalActivityManager.java:135)
01-03 04:06:24.505: E/AndroidRuntime(31419):    at android.app.LocalActivityManager.startActivity(LocalActivityManager.java:347)
01-03 04:06:24.505: E/AndroidRuntime(31419):    at android.widget.TabHost$IntentContentStrategy.getContentView(TabHost.java:749)
01-03 04:06:24.505: E/AndroidRuntime(31419):    at android.widget.TabHost.setCurrentTab(TabHost.java:413)
01-03 04:06:24.505: E/AndroidRuntime(31419):    at android.widget.TabHost$2.onTabSelectionChanged(TabHost.java:154)
01-03 04:06:24.505: E/AndroidRuntime(31419):    at android.widget.TabWidget$TabClickListener.onClick(TabWidget.java:549)
01-03 04:06:24.505: E/AndroidRuntime(31419):    at android.view.View.performClick(View.java:4445)
01-03 04:06:24.505: E/AndroidRuntime(31419):    at android.view.View$PerformClick.run(View.java:18446)
01-03 04:06:24.505: E/AndroidRuntime(31419):    at android.os.Handler.handleCallback(Handler.java:733)
01-03 04:06:24.505: E/AndroidRuntime(31419):    at android.os.Handler.dispatchMessage(Handler.java:95)
01-03 04:06:24.505: E/AndroidRuntime(31419):    at android.os.Looper.loop(Looper.java:136)
01-03 04:06:24.505: E/AndroidRuntime(31419):    at android.app.ActivityThread.main(ActivityThread.java:5146)
01-03 04:06:24.505: E/AndroidRuntime(31419):    at java.lang.reflect.Method.invokeNative(Native Method)
01-03 04:06:24.505: E/AndroidRuntime(31419):    at java.lang.reflect.Method.invoke(Method.java:515)
01-03 04:06:24.505: E/AndroidRuntime(31419):    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:796)
01-03 04:06:24.505: E/AndroidRuntime(31419):    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:612)
01-03 04:06:24.505: E/AndroidRuntime(31419):    at dalvik.system.NativeStart.main(Native Method)
01-03 04:06:24.505: E/AndroidRuntime(31419): Caused by: android.content.res.Resources$NotFoundException: String resource ID #0x7b
01-03 04:06:24.505: E/AndroidRuntime(31419):    at android.content.res.Resources.getText(Resources.java:265)
01-03 04:06:24.505: E/AndroidRuntime(31419):    at android.widget.TextView.setText(TextView.java:3888)
01-03 04:06:24.505: E/AndroidRuntime(31419):    at com.AMOV.mr.fit.PerfilActivity.onCreate(PerfilActivity.java:39)
01-03 04:06:24.505: E/AndroidRuntime(31419):    at android.app.Activity.performCreate(Activity.java:5231)
01-03 04:06:24.505: E/AndroidRuntime(31419):    at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1087)
01-03 04:06:24.505: E/AndroidRuntime(31419):    at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2169)


01-03 04:06:24.495: E/ActivityThread(31419): Failed to find resource
01-03 04:06:24.495: E/ActivityThread(31419): android.content.res.Resources$NotFoundException: String resource ID #0x7b
01-03 04:06:24.495: E/ActivityThread(31419):    at android.content.res.Resources.getText(Resources.java:265)
01-03 04:06:24.495: E/ActivityThread(31419):    at android.widget.TextView.setText(TextView.java:3888)
01-03 04:06:24.495: E/ActivityThread(31419):    at com.AMOV.mr.fit.PerfilActivity.onCreate(PerfilActivity.java:39)
01-03 04:06:24.495: E/ActivityThread(31419):    at android.app.Activity.performCreate(Activity.java:5231)
01-03 04:06:24.495: E/ActivityThread(31419):    at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1087)
01-03 04:06:24.495: E/ActivityThread(31419):    at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2169)
01-03 04:06:24.495: E/ActivityThread(31419):    at android.app.ActivityThread.startActivityNow(ActivityThread.java:2045)
01-03 04:06:24.495: E/ActivityThread(31419):    at android.app.LocalActivityManager.moveToState(LocalActivityManager.java:135)
01-03 04:06:24.495: E/ActivityThread(31419):    at android.app.LocalActivityManager.startActivity(LocalActivityManager.java:347)
01-03 04:06:24.495: E/ActivityThread(31419):    at android.widget.TabHost$IntentContentStrategy.getContentView(TabHost.java:749)
01-03 04:06:24.495: E/ActivityThread(31419):    at android.widget.TabHost.setCurrentTab(TabHost.java:413)
01-03 04:06:24.495: E/ActivityThread(31419):    at android.widget.TabHost$2.onTabSelectionChanged(TabHost.java:154)
01-03 04:06:24.495: E/ActivityThread(31419):    at android.widget.TabWidget$TabClickListener.onClick(TabWidget.java:549)
01-03 04:06:24.495: E/ActivityThread(31419):    at android.view.View.performClick(View.java:4445)
01-03 04:06:24.495: E/ActivityThread(31419):    at android.view.View$PerformClick.run(View.java:18446)
01-03 04:06:24.495: E/ActivityThread(31419):    at android.os.Handler.handleCallback(Handler.java:733)
01-03 04:06:24.495: E/ActivityThread(31419):    at android.os.Handler.dispatchMessage(Handler.java:95)
01-03 04:06:24.495: E/ActivityThread(31419):    at android.os.Looper.loop(Looper.java:136)
01-03 04:06:24.495: E/ActivityThread(31419):    at android.app.ActivityThread.main(ActivityThread.java:5146)
01-03 04:06:24.495: E/ActivityThread(31419):    at java.lang.reflect.Method.invokeNative(Native Method)
01-03 04:06:24.495: E/ActivityThread(31419):    at java.lang.reflect.Method.invoke(Method.java:515)
01-03 04:06:24.495: E/ActivityThread(31419):    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:796)
01-03 04:06:24.495: E/ActivityThread(31419):    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:612)
01-03 04:06:24.495: E/ActivityThread(31419):    at dalvik.system.NativeStart.main(Native Method)
Marco
  • 625
  • 3
  • 10
  • 30
  • possible duplicate of [android.content.res.Resources$NotFoundException: String resource ID Fatal Exception in Main](http://stackoverflow.com/questions/15191092/android-content-res-resourcesnotfoundexception-string-resource-id-fatal-except) – Spry Techies Jan 03 '15 at 04:32

2 Answers2

2

Resources$NotFoundException: String resource ID #0x7b

Because you are passing Integer to EditText.setText method. Use String.valueOf(<Int value>) to show value in EditTexts:

 ed_altura.setText(String.valueOf(settings.getInt("altura", 1232)));
 ed_peso.setText(String.valueOf(settings.getInt("peso", 222)));
 ed_gordura.setText(String.valueOf(settings.getInt("gordura", 123)));
ρяσѕρєя K
  • 132,198
  • 53
  • 198
  • 213
2

You Must Parse the Value before setting to the EditText because value Must be String Type

ed_altura.setText(settings.getInt("altura", 1232));
        ed_peso.setText(settings.getInt("peso", 222));
        ed_gordura.setText(settings.getInt("gordura", 123));

Replace to

 ed_altura.setText(String.valueOf(settings.getInt("altura", 1232)));
 ed_peso.setText(String.valueOf(settings.getInt("peso", 222)));
 ed_gordura.setText(String.valueOf(settings.getInt("gordura", 123)));

Check this it might Help you

Abhishek Chaubey
  • 2,960
  • 1
  • 17
  • 24