共有設定に問題があります。向きを変更する前に検索ボックスのテキスト(編集テキスト)を保存し、向きを変更した後にアクティビティが再作成された後、元に戻そうとしています。編集テキストに引用符が含まれている場合を除いて、チャームのように機能します。引用符があり、デバイスを回転させると、新しい方向でアクティビティを作成しようとするとアプリがクラッシュします。この唯一の記号は、二重引用符"がある場合に発生します。一重引用符'を含む他のすべての記号は、正常に機能します。
私が得るエラーはandroid.database.sqlite.SQLiteExceptionです:認識されないトークン: "" ORDER BY nameCOLLATENOCASE"。私の推測では"はSQLクエリの記述方法に干渉していると思います。SharedPreferencesに保存する前にすべての"を\"に置き換え、文字列を元に戻すときにすべての\"を"に置き換えてみました。私はまだこれと同じ問題を抱えています。誰もがこれを修正する方法を知っていますか?
私のコードは次のとおりです。
@Override
public void onResume()
{
super.onResume();
String searchText = f_sharedPreferences.getString("searchText", "");
f_searchBox.setText(searchText);
}
@Override
public void onPause()
{
super.onPause();
String searchText = f_searchBox.getText().toString();
f_sharedPreferences.edit().putString("searchText", searchText).commit();
}
ありがとう!あなたの助けは非常にありがたいです。
編集:私のonCreateメソッドでは、次の行でf_sharedPreferencesを取得します。
f_sharedPreferences = getSharedPreferences(this.getClass().getName(), Context.MODE_PRIVATE);
また、android:configChanges = "orientation"は他の機能に干渉するため、使用できません。