Ошибка, получив SharedPreferences

Я попробован создавать класс, чтобы получать предопределенные данные, но когда я называю метод Load() задерживается app. Они могли бы помогать мне? Спасибо.

package com.example.nano.prueba.login.loginprueba;

import android.content.Context;
import android.content.SharedPreferences;
import android.support.v7.app.AppCompatActivity;


/**
 * Created by admin on 02/04/2016.
 */
public class LoadPreferencias extends AppCompatActivity {

    private String User;
    private String Pass;

    public void Load(){

        SharedPreferences Preferencias = getSharedPreferences("DatosUser", Context.MODE_PRIVATE);
        User =(Preferencias.getString("User",""));
        Pass = (Preferencias.getString("Pass", ""));

    }

    public String GetUser()
    {
        Load();
        return User;
    }
    public String GetPass()
    {
        return Pass;
    }



}

я добавляю код ошибки

04-03 09:55:44.445 31786-31786/? E/AndroidRuntime: ФАТАЛЬНЫЙ EXCEPTION: main Process: com.example.nano.prueba.login.loginprueba, PID: 31786 java.lang. RuntimeException: Unable to start activity ComponentInfo { com.example.nano.prueba.login.loginprueba/com.example.nano.prueba.login.loginprueba. MainActivity }: java.lang. NullPointerException: Виртуальный Attempt to invoke method 'android.content. SharedPreferences android.content. Context.getSharedPreferences (java.lang. String, int)' on в null object reference at android.app. ActivityThread.performLaunchActivity (ActivityThread.java:2658) at android.app. ActivityThread.handleLaunchActivity (ActivityThread.java:2723) at android.app. 900 ActivityThread.access$ (ActivityThread.java:172) at android.app. ActivityThread $H.handleMessage (ActivityThread.java:1422) at android.os. Handler.dispatchMessage (Handler.java:102) at android.os. Looper.loop (Looper.java:145) at android.app. ActivityThread.main (ActivityThread.java:5832) at java.lang.reflect. Method.invoke (Нативе Метод) at java.lang.reflect. Method.invoke (Method.java:372) at com.android.internal.os. ZygoteInit $MethodAndArgsCaller.run (ZygoteInit.java:1399) at com.android.internal.os. ZygoteInit.main (ZygoteInit.java:1194) Caused by: java.lang. NullPointerException: Виртуальный Attempt to invoke method 'android.content. SharedPreferences android.content. Context.getSharedPreferences (java.lang. String, int)' on в null object reference at android.content. ContextWrapper.getSharedPreferences (ContextWrapper.java:184) at com.example.nano.prueba.login.loginprueba. LoadPref. Похвалите (LoadPref.java:16) at com.example.nano.prueba.login.loginprueba. MainActivity.onCreate (MainActivity.java:41) at android.app. Activity.performCreate (Activity.java:6221) at android.app. Instrumentation.callActivityOnCreate (Instrumentation.java:1119) at android.app. ActivityThread.performLaunchActivity (ActivityThread.java:2611) at android.app. ActivityThread.handleLaunchActivity (ActivityThread.java:2723) at android.app. 900 ActivityThread.access$ (ActivityThread.java:172) at android.app. ActivityThread $H.handleMessage (ActivityThread.java:1422) at android.os. Handler.dispatchMessage (Handler.java:102) at android.os. Looper.loop (Looper.java:145) at android.app. ActivityThread.main (ActivityThread.java:5832) at java.lang.reflect. Method.invoke (Нативе Метод) at java.lang.reflect. Method.invoke (Method.java:372) at com.android.internal.os. ZygoteInit $MethodAndArgsCaller.run (ZygoteInit.java:1399) at com.android.internal.os. ZygoteInit.main (ZygoteInit.java:1194)

1
задан 03.04.2016, 19:14
1 ответ

Согласно твоему сообщению ошибки:

android.content. Context.getSharedPreferences ComponentInfo {com.example.nano.prueba.login.loginprueba/com.example.nano.prueba.login.loginprueba. MainActivity}: java.lang. NullPointerException: Виртуальный Attempt to invoke method 'android.content. SharedPreferences android.content. Context.getSharedPreferences эти

звоня mГ©todo Похвалите () с MainActivity, mГ©todo Похвалите () нуждайся в том, чтобы получить Контекст, поэтому ошибка!, измени ты mГ©todo для того, чтобы он это получил:

   public void Load(Context context){

    SharedPreferences Preferencias = context.getSharedPreferences("DatosUser", Context.MODE_PRIVATE);
    User =(Preferencias.getString("User",""));
    Pass = (Preferencias.getString("Pass", ""));

}

, Хотя один diseГ±o лучше serГ, - когда 2 создает mГ©todos, который ты назвал, когда ты потребуешь стоимости User или Pass, твой класс LoadPreferencias не нуждается в том, чтобы увеличить AppCompatActivity, и aquГ - сам ты можешь добавлять их mГ©todos, чтобы сохранять стоимость, setUser() и setPass():

public class LoadPreferencias {

    public static String GetUser(Context context)
    {
     SharedPreferences Preferencias = context.getSharedPreferences("DatosUser", Context.MODE_PRIVATE);
    String   User =Preferencias.getString("User","");
        return User;
    }


    public static String GetPass(Context context)
    {
      SharedPreferences Preferencias = context.getSharedPreferences("DatosUser", Context.MODE_PRIVATE);
    String   Pass =Preferencias.getString("Pass","");
        return Pass;
    }  
} 

С MainActivity elecutarГ-схвати их mГ©todos, таким образом:

String usuario = LoadPreferencias.GetUser(getApplicationContext());
String password = LoadPreferencias.GetPass(getApplicationContext());
5
ответ дан 24.11.2019, 14:39
  • 1
    Такой который это - правильный ответ.! ты лучшая! xD... thanks so much. @Elenasys – Alejandro Echeverria 03.04.2016, 22:35
  • 2
    Что хорошо, что ты решил твою проблему, всегда старайся добавлять твои сообщения LogCat для того, чтобы мы смогли помогать тебе! привет! – Jorgesys♦ 03.04.2016, 23:05

Теги

Похожие вопросы