私はビューを持っており、それにsharedPrefsを保存します。ビューを最初にクリックすると、boolの値はtrueになります。もう一度クリックし、値がtrueの場合は、再度falseにする必要があります。ここでSharedPreferencesに基づいてOnClickListenersを設定します。
はいくつかのコードです:
if(AppController.getInstance().getPrefManager().isItClicked(id)){
imageView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
AppController.getInstance().getPrefManager().delete(id);
}
});
} else {
imageView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
AppController.getInstance().getPrefManager().insert(id);
}
});
}
そしてここでは、私の環境設定処理の方法です:
public void insertSingleQuotation(String id) {
editPrefs.putBoolean(id, true).apply();
editPrefs.commit();
}
public boolean isItClicked(String id) {
return sharedPrefs.getBoolean(id, false);
}
public void deleteSingleQuotation(String id){
editPrefs.remove(id);
editPrefs.apply();
editPrefs.commit();
}
さらに私はPagerAdapterを持っており、コンテナisShown場合、isItLikedを呼び出します。今、問題は、コンテナがレイアウトとsharedPrefsをリフレッシュしないため、他のビューにスクロールしてから再度これに戻り、instantiateItemとdestroyItemが呼び出され、ビューがリフレッシュされるようにする必要があります。
どうすればこの問題を解決できますか?
ステータスを変更したクリックのコードを投稿してください(真偽) – Bharatesh