Лучшая практика когда-либо
Создать интерфейс с помощью PreferenceManager:
// Interface to save values in shared preferences and also for retrieve values from shared preferences
public interface PreferenceManager {
SharedPreferences getPreferences();
Editor editPreferences();
void setString(String key, String value);
String getString(String key);
void setBoolean(String key, boolean value);
boolean getBoolean(String key);
void setInteger(String key, int value);
int getInteger(String key);
void setFloat(String key, float value);
float getFloat(String key);
}
Как использовать с Activity / Fragment:
public class HomeActivity extends AppCompatActivity implements PreferenceManager{
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout_activity_home);
}
@Override
public SharedPreferences getPreferences(){
return getSharedPreferences("SP_TITLE", Context.MODE_PRIVATE);
}
@Override
public SharedPreferences.Editor editPreferences(){
return getPreferences().edit();
}
@Override
public void setString(String key, String value) {
editPreferences().putString(key, value).commit();
}
@Override
public String getString(String key) {
return getPreferences().getString(key, "");
}
@Override
public void setBoolean(String key, boolean value) {
editPreferences().putBoolean(key, value).commit();
}
@Override
public boolean getBoolean(String key) {
return getPreferences().getBoolean(key, false);
}
@Override
public void setInteger(String key, int value) {
editPreferences().putInt(key, value).commit();
}
@Override
public int getInteger(String key) {
return getPreferences().getInt(key, 0);
}
@Override
public void setFloat(String key, float value) {
editPreferences().putFloat(key, value).commit();
}
@Override
public float getFloat(String key) {
return getPreferences().getFloat(key, 0);
}
}
Примечание: Заменить ваш ключ SharedPreference с SP_TITLE.
Примеры:
Сохранить строку в shareperence:
setString("my_key", "my_value");
Получить строку из shareperence:
String strValue = getString("my_key");
Надеюсь, это вам поможет.
Вы не упоминаете версию Доступа, который Вы используете. Microsoft сообщает об ошибке в 2000:
ОШИБКА: Вы получаете "Ключ поиска, не был найден ни в каком рекордном" сообщении об ошибке, когда Вы уплотняете базу данных или сохраняете конструктивные изменения в Access 2000http://support.microsoft.com/kb/301474
, Если это не Ваша проблема, вот довольно всесторонний FAQ Tony Toews, MVP Microsoft Access:
Поврежденный Microsoft Access MDBs FAQhttp://www.granite.ab.ca/access/corruptmdbs.htm
, Если проблема постоянно происходит, необходимо найти причину повреждения таблицы, и Вы найдете много предложений для отслеживания причины в ссылке сайта выше.
Другой возможной причиной этой ошибки является несогласованный файл рабочей группы. Таким образом, при попытке использовать защищенный (или частично защищенный) MDB с файлом рабочей группы кроме того, используемого для обеспечения его, можно инициировать ошибку (я видел его сам, несколько лет назад с Access 2000).
Я знаю, что это - очень старое сообщение, но поскольку я искал дополнительные решения этой той же ошибки при выполнении моей команды (я ранее встретился с пробелами в Excel wb заголовки и исправил его с VBA каждый раз, когда файл обновляется так, я знал, что это не было это). Я рассмотрел то, что xlsm файл и DB были на дисках отдельной сети, но не хотели исследовать перемещение того, если это не было мое последнее средство.
я попытался выполнить импорт сохранения вручную, и там это было правильно перед моей поверхностью. Папка, содержащая xlsm файл, была переименована.... Я возвратил имя для соответствия моему сохраненному импорту и.... smh, это было это все время.
Это шаги, которым я следую, может быть, это будет полезно для вас.
Перейдите в меню-инструменты-база данных утилиты-сжатие и восстановите базу данных.
при восстановлении базы данных удалите или обновите эту запись.
она работает нормально.
В Access 2007 эта ошибка возникает при импорте файла Excel, в котором есть два поля с одинаковым заголовком столбца.