Проблема с общими привилегиями? Android Java

Привет, я использовал общие настройки для хранения строки в "проверке". В основном действии я просто должен иметь возможность получить строку, и она будет использоваться в выражении if. при проверке активности я должен уметь вводить значение в editText, и он будет хранить его постоянно (даже когда приложение закрыто), пока приложение не будет удалено. Вот мой код, который он в настоящее время не сохраняет строку permenant. Я думаю, что это может быть связано с OnClickListner? Но я не уверен.

Основная деятельность

public class MainActivity extends Activity {



 public static final String Verified = "";




@Override
protected void onCreate(Bundle savedInstanceState) {
 super.onCreate(savedInstanceState);Context.MODE_PRIVATE);

SharedPreferences settings = getSharedPreferences(Verified, 0);
String value = settings.getString("key","");


 if (MobileVerified.equals("")){

...

Проверенный класс

public void onCreate(Bundle savedInstanceState)

 {
 super.onCreate(savedInstanceState);
 setContentView(R.layout.verified);

 Button VerifyCompleteButton = (Button) findViewById(R.id.VerifyCompleteButton);

 VerifyCompleteButton.setOnClickListener(new View.OnClickListener()

 {
 public void onClick(View view) 
 { 

 String NumberString;
 String Verified;

 Bundle bundle = getIntent().getExtras();

 NumberString = bundle.getString("NumberString");
 Verified = bundle.getString("Verified");



 //set String Verified permenantly

 SharedPreferences settings = getSharedPreferences(Verified, 0);
 SharedPreferences.Editor editor = settings.edit();
 editor.putString("key", NumberString);
 editor.commit();


 } 



 });


 }
2 ответа

Для сбоя вы должны предоставить stacktrace, но по крайней мере это очевидно:

SharedPreferences settings = getSharedPreferences(Verified, 0);

Вы используете Activity как Context слишком рано, в фазе инициализации элемента-переменной. Переместите getSharedPreferences() и следующие getValue() в onCreate().

После этого убедитесь, что вы передаете одно и то же имя файла настроек в getSharedPreferences() в обоих местах. getSharedPreferences(Verified,...), похоже, не то, что вам нужно, используйте что-то вроде getSharedPreferences("verified",...).


Инициализируйте объект SharedPreferences внутри onCreate() вместо метода onCreate() как onCreate() ниже...

SharedPreferences settings;

@Override
protected void onCreate(Bundle savedInstanceState) {
 super.onCreate(savedInstanceState);

 settings = PreferenceManager.getDefaultSharedPreferences(this);
 String value = settings.getString("key","");
}

licensed under cc by-sa 3.0 with attribution.