#android #android-recyclerview #android-adapter
#Android #android-recyclerview #android-адаптер
Вопрос:
Я хотел бы выполнять часть кода по одному в день. Для достижения этой цели я использую SharedPreferences, и в основном код работает нормально, но он работает только для первого элемента в DataAdadpter. Я должен использовать этот фрагмент кода для всех элементов адаптера.
Calendar calendar24h = Calendar.getInstance();
int currentDay = calendar24h.get(Calendar.DAY_OF_MONTH);
SharedPreferences settingsSharedPreferences = mCtx.getSharedPreferences("PREFS", 0);
int lastDay = settingsSharedPreferences.getInt("day", 0);
if (lastDay != currentDay) {
SharedPreferences.Editor editor = settingsSharedPreferences.edit();
editor.putInt("day", currentDay);
editor.apply();
holder.addProfit.setVisibility(View.VISIBLE);
holder.addProfit.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
holder.addProfit.setVisibility(View.GONE);
Toasty.success(mCtx,"Salary added to " holder.goalName.getText().toString(),Toasty.LENGTH_SHORT).show();
}
});
}
Комментарии:
1. Эй, проводник, не совсем понятно, как структурирован код и чего вы пытаетесь достичь. Как правило, вы можете передать результат
lastDay != currentDay
как логическое значение адаптеру и использовать его как переменную во всех элементах сonBindView()
функцией. Будет ли это работать для вас?2. @Viktor Stojanov спасибо за ваш ответ. Не могли бы вы показать мне какой-нибудь пример этого?
3. Просто вычислите и сохраните
lastDay != currentDay
как переменную внутри адаптера и используйте ее внутри метода bind.