Использование редактора общих настроек
Я медленно работаю через учебную книгу Android и получил следующий код для назначения пользовательских данных:
package com.androidbook.triviaquiz;
import android.app.Activity;
import android.content.SharedPreferences;
public class QuizActivity extends Activity {
public static final String GAME_PREFERENCES = "GamePrefs";
SharedPreferences settings = getSharedPreferences(GAME_PREFERENCES, MODE_PRIVATE);
SharedPreferences.Editor prefEditor = settings.edit();
prefeditor.putString("UserName", "John Doe"); //**syntax error on tokens**
prefEditor.putInt("UserAge", 22); //**syntax error on tokens**
prefEditor.commit();
}
Тем не менее, я получаю сообщение об ошибке (строки, обозначенные комментариями), которые подчеркивают период и говорят "неуместная конструкция", а также подчеркивают аргументы, говорящие "удалять эти токены". Я видел это в других приложениях в том же формате, я не понимаю, что не так.
Ответы
Ответ 1
Изменить: Конечно! Эти утверждения не могут быть помещены непосредственно в класс на этом уровне и должны быть внутри метода, примерно так:
public class QuizActivity extends Activity {
public static final String GAME_PREFERENCES = "GamePrefs";
@Override
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
SharedPreferences settings = getSharedPreferences(GAME_PREFERENCES, MODE_PRIVATE);
SharedPreferences.Editor prefEditor = settings.edit();
prefeditor.putString("UserName", "John Doe");
prefEditor.putInt("UserAge", 22);
prefEditor.commit();
}
}
Ответ 2
Я думаю, что вы можете пропустить метод OnCreate(), не забудьте разместить общие предпочтения в методе OnCreate()... я только что отредактировал ваш код, пройдя через него
пройдите код... ниже
public class A extends Activity {
static SharedPreferences settings;
public static final String PREFS_NAME = "YourPrefName";
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
settings = getSharedPreferences(PREFS_NAME, 0);
Log.v("UserName"," - "+settings.getString("username","android"));
SharedPreferences.Editor editor = settings.edit();
editor.putString("username","Change Android");
editor.commit();
Log.v("UserName after changed editing preference key value"," - "+settings.getString("username","android"));
}
}
Ответ 3
SharedPreferences будет обрабатывать метод onCreate(), если он имеет контекст:
SharedPreferences settings = getAplicationContext().getSharedPreferences(GAME_PREFERENCES, MODE_PRIVATE);