Android 中无法通过 SharedPreferences 保存数据
Unable to save data via SharedPreferences in Android
当我再次打开应用程序时,我无法从 textView
保存数据 我在 textview 中遇到错误:
Error message Field XXXXX should be numeric
我认为它没有保存任何数据或者我使用了不正确的方法。先感谢您!
class MyJavaScriptInterface {
@JavascriptInterface
@SuppressWarnings("unused")
public void processHTML(final String html) {
myWebView.post(new Thread() {
@Override public void run() {
TextView text = findViewById(R.id.textView);
if(!sharedPreferences.contains("statusKey")){
sharedPreferences = getSharedPreferences("prefID", Context.MODE_PRIVATE);
SharedPreferences.Editor editor = sharedPreferences.edit();
editor.putString("statusKey", html);
editor.apply();
text.setText(html);
}
else {
text.setText(sharedPreferences.getString("statusKey", ""));
}
}
});
}
}
class MyJavaScriptInterface {
@JavascriptInterface
@SuppressWarnings("unused")
public void processHTML(final String html) {
myWebView.post(new Thread() {
@Override public void run() {
TextView text = findViewById(R.id.textView);
sharedPreferences = getSharedPreferences("prefID", Context.MODE_PRIVATE);
if(!sharedPreferences.contains("statusKey")){
SharedPreferences.Editor editor = sharedPreferences.edit();
editor.putString("statusKey", html);
editor.apply();
text.setText(html);
}
else {
text.setText(sharedPreferences.getString("statusKey", ""));
}
}
});
}
}
试试上面的代码
您在检查条件后才启动 sharedPreference。所以先解决这个问题。
class MyJavaScriptInterface {
@JavascriptInterface
@SuppressWarnings("unused")
public void processHTML(final String html) {
myWebView.post(new Thread() {
@Override public void run() {
TextView text = findViewById(R.id.textView);
sharedPreferences = getSharedPreferences("prefID", Context.MODE_PRIVATE);
if(!sharedPreferences.contains("statusKey")){
SharedPreferences.Editor editor = sharedPreferences.edit();
editor.putString("statusKey", html);
editor.apply();
text.setText(html);
}
else {
text.setText(sharedPreferences.getString("statusKey", ""));
}
}
});
}
}
当我再次打开应用程序时,我无法从 textView
保存数据 我在 textview 中遇到错误:
Error message Field XXXXX should be numeric
我认为它没有保存任何数据或者我使用了不正确的方法。先感谢您!
class MyJavaScriptInterface {
@JavascriptInterface
@SuppressWarnings("unused")
public void processHTML(final String html) {
myWebView.post(new Thread() {
@Override public void run() {
TextView text = findViewById(R.id.textView);
if(!sharedPreferences.contains("statusKey")){
sharedPreferences = getSharedPreferences("prefID", Context.MODE_PRIVATE);
SharedPreferences.Editor editor = sharedPreferences.edit();
editor.putString("statusKey", html);
editor.apply();
text.setText(html);
}
else {
text.setText(sharedPreferences.getString("statusKey", ""));
}
}
});
}
}
class MyJavaScriptInterface {
@JavascriptInterface
@SuppressWarnings("unused")
public void processHTML(final String html) {
myWebView.post(new Thread() {
@Override public void run() {
TextView text = findViewById(R.id.textView);
sharedPreferences = getSharedPreferences("prefID", Context.MODE_PRIVATE);
if(!sharedPreferences.contains("statusKey")){
SharedPreferences.Editor editor = sharedPreferences.edit();
editor.putString("statusKey", html);
editor.apply();
text.setText(html);
}
else {
text.setText(sharedPreferences.getString("statusKey", ""));
}
}
});
}
}
试试上面的代码
您在检查条件后才启动 sharedPreference。所以先解决这个问题。
class MyJavaScriptInterface {
@JavascriptInterface
@SuppressWarnings("unused")
public void processHTML(final String html) {
myWebView.post(new Thread() {
@Override public void run() {
TextView text = findViewById(R.id.textView);
sharedPreferences = getSharedPreferences("prefID", Context.MODE_PRIVATE);
if(!sharedPreferences.contains("statusKey")){
SharedPreferences.Editor editor = sharedPreferences.edit();
editor.putString("statusKey", html);
editor.apply();
text.setText(html);
}
else {
text.setText(sharedPreferences.getString("statusKey", ""));
}
}
});
}
}