Изменить цвет фона элемента адаптера в запросе пожарного депо - PullRequest
0 голосов
/ 26 октября 2019

У меня есть сделанный адаптер, который показывает ListView с предметами. Информация об элементах считывается из базы данных Firestore и вставляется в ListView с помощью запросов Firestore и установки этих данных для элемента в адаптере.

Один из параметров в моих данных Firestore - ReturnedDate,Если поле существует, мне бы хотелось, чтобы фон элемента в списке был другого цвета.

В основном я пытаюсь сделать следующее:

@Override
public View getView(int position, View convertView, ViewGroup parent) {

*some lines of code to set other views*


CollectionReference Ref = db.collection("Users").document(auth.getUid()).collection( "MyBorrowed" );
Query query = Ref.whereEqualTo("ID", item.getId());
query.get().addOnCompleteListener(new OnCompleteListener<QuerySnapshot>() {
    @Override
    public void onComplete(@NonNull Task<QuerySnapshot> task) {
        if (task.isSuccessful()) {
            for (QueryDocumentSnapshot document : task.getResult()) {

                if (document.get("ReturnedDate") == null) {

                } else {
convertView.setBackgroundColor(MyBorroweAdapter.this.getContext().getResources().getColor(R.color.colorRed));

                }
            }
        }
    }
});

Проблема в том, что я получаюошибка "convertView is accessed from within inner class, needs to be final"

Однако я не могу сделать ее окончательной в адаптере ..

Есть ли способ решить эту проблему?

РЕШЕНИЕ:

Мне удалось решить эту проблему, объявив в начале адаптера:

public View layout;

Затем внутри моего getView:

viewHolder.layout = convertedView;

В конце концов при настройкефон:

viewHolder.item_layout.setBackgroundColor(MyBorrowedAdapter.this.getContext().getResources().getColor(R.color.colorRed));

Спасибо

...