ich erstellen möchten Inhalt Anwendung speichern, i Daten aus JSON laden und wenn Benutzer auf button
diesen Inhalt in SQLitedatabase
speichern klicken.
Ich möchte this library für die Schaltfläche verwenden.
Und überprüfbaren Taste, verwende ich this CodeWie Knopf Staat in SharedPreferences in Android
I unten Codes schreiben, wenn Klick auf den Button speichern i diesen Inhalt in SQLitedatabase
, aber ich kann nicht Taste sate in SharedPreferences
sparen!
Wenn Klick auf den Button (boolean checked) Taste ist wiederum auf, und wenn klicken Sie erneut auf die Schaltfläche diese Taste deaktivieren.
ich will, wenn Klick auf den Button, auf diesen Knopf drehen und zu anderen activity
in SharedPreferences
und wenn gehen speichern und wieder zurück diese activity
finden wiederum auf diese Schaltfläche NICHT auszuschalten. Wenn Sie zu diesem Zeitpunkt erneut auf diese Schaltfläche klicken, klicken Sie auf Schaltfläche!
Tätigkeitskodes:
private ShineButton postShow_favPost;
private String favData = "FavPrefsList";
private Boolean favState;
@TargetApi(Build.VERSION_CODES.LOLLIPOP)
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.post_show_page);
bindActivity();
//Give Data
Bundle bundle = getIntent().getExtras();
if (bundle != null) {
title = bundle.getString("title");
image = bundle.getString("image");
content = bundle.getString("content");
dateTime = bundle.getString("dateTime");
author = bundle.getString("author");
category = bundle.getString("category");
categoryID = bundle.getString("categoryID");
}
mAppBarLayout.addOnOffsetChangedListener(this);
//// Save Fav state
final SharedPreferences saveFavPrefs = getSharedPreferences(favData, MODE_PRIVATE);
final SharedPreferences.Editor editor = saveFavPrefs.edit();
favState = saveFavPrefs.getBoolean("isChecked", false);
postShow_favPost = (ShineButton) mToolbar.findViewById(R.id.post_FavImage);
postShow_favPost.init(this);
postShow_favPost.setOnCheckStateChangeListener(new ShineButton.OnCheckedChangeListener() {
@Override
public void onCheckedChanged(View view, boolean checked) {
if (checked == true) {
editor.putBoolean("isChecked", true);
editor.commit();
//////////// Database
favDB = new FavHelper(context);
long addNewFAV = favDB.insertFAV(title, image, content, dateTime, author, category);
if (addNewFAV < 0) {
TastyToast.makeText(context, "Not save in database", TastyToast.LENGTH_LONG, TastyToast.ERROR);
} else {
TastyToast.makeText(context, "Save in database", TastyToast.LENGTH_LONG, TastyToast.SUCCESS);
}
////////////////////
} else {
editor.putBoolean("isChecked", false);
editor.commit();
Toast.makeText(context, "Checked False", Toast.LENGTH_SHORT).show();
}
}
});
Wie kann ich mein Problem zu beheben?
versuchen .commit() mit .apply() für asynchronen Prozess zu ersetzen. – Lazai
@Lazai, ich benutze '.apply();' in ** wenn ** und ** sonst ** Code, aber nicht arbeiten mich :(.und wenn zurück zu Aktivität, siehe Abschaltknopf :( –
@Lazai, können Sie mir für unten Post mein Freund helfen? –