Список ошибок Firestore Spinner после получения данных - PullRequest
0 голосов
/ 15 сентября 2018

Я пытаюсь заполнить счетчик, но по какой-то причине я получаю сообщение об ошибке при попытке пройти через мой список объектов.Могут ли некоторые посмотреть, пожалуйста:

код:

public class AddFacultyFragment extends Fragment {

@BindView(R.id.spinner_search_UniFac)
Spinner spinner_search_UniFac;
ArrayList<University> list = new ArrayList<>();
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
                         Bundle savedInstanceState) {
    View view = inflater.inflate(R.layout.fragment_add_faculty,
            container,
            false);
    ButterKnife.bind(this, view);
    FirebaseFirestore db = FirebaseFirestore.getInstance();
    CollectionReference docRef = db.collection("university");
    docRef.get().addOnCompleteListener((OnCompleteListener<QuerySnapshot>) task -> {
        if (task.isSuccessful()) {
            for(DocumentSnapshot a : task.getResult()){
                University u = new University();
                u.setID(a.getId());
                u.setDesc(a.get("Desc").toString());
                list.add(u);
            }
        }
    });
    ArrayAdapter<University> spinnerArrayAdapter = new ArrayAdapter<University>
            (this, android.R.layout.simple_spinner_item,
                    list);
    spinnerArrayAdapter.setDropDownViewResource(android.R.layout
            .simple_spinner_dropdown_item);
    spinner_search_UniFac.setAdapter(spinnerArrayAdapter);
    return view;
}

public AddFacultyFragment() {
    // Required empty public constructor
}

}

Спасибо заранее.Это ошибка

: не найден подходящий конструктор для конструктора ArrayAdapter (AddFacultyFragment, int, List) ArrayAdapter.ArrayAdapter (Context, int, int) не применим (несоответствие аргумента; AddFacultyFragment не может быть преобразованв контекст) конструктор ArrayAdapter.ArrayAdapter (Context, int, String []) не применим (несоответствие аргумента; AddFacultyFragment не может быть преобразован в контекст) конструктор ArrayAdapter.ArrayAdapter (Context, int, List) не применим (несоответствие аргумента; AddFacultyFragment не можетбыть преобразовано в контекст)

1 Ответ

0 голосов
/ 15 сентября 2018

Я думаю, что все, что вам не хватает, это правильный контекст. Вы не можете использовать this для фрагмента, вы должны использовать getContext(), тогда оно должно работать. Как это:

открытый класс AddFacultyFragment extends Fragment {

@BindView(R.id.spinner_search_UniFac)
Spinner spinner_search_UniFac;
ArrayList<University> list = new ArrayList<>();
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
                         Bundle savedInstanceState) {
    View view = inflater.inflate(R.layout.fragment_add_faculty,
            container,
            false);
    ButterKnife.bind(this, view);
    FirebaseFirestore db = FirebaseFirestore.getInstance();
    CollectionReference docRef = db.collection("university");
    docRef.get().addOnCompleteListener((OnCompleteListener<QuerySnapshot>) task -> {
        if (task.isSuccessful()) {
            for(DocumentSnapshot a : task.getResult()){
                University u = new University();
                u.setID(a.getId());
                u.setDesc(a.get("Desc").toString());
                list.add(u);
            }
        }
    });
    ArrayAdapter<University> spinnerArrayAdapter = new ArrayAdapter<University>
            (getContext(), android.R.layout.simple_spinner_item,
                    list);
    spinnerArrayAdapter.setDropDownViewResource(android.R.layout
            .simple_spinner_dropdown_item);
    spinner_search_UniFac.setAdapter(spinnerArrayAdapter);
    return view;
}

public AddFacultyFragment() {
    // Required empty public constructor
}

}
...