Я хочу показать данные, которые поступают из функции обратного вызова Retrofit. Я получаю данные от модернизации отлично, но я не вижу в ListView моего адаптера. Когда я вижу отладчик, значение адаптера равно нулю, поэтому я не знаю почему. Я показываю вам код здесь:
Это мой адаптер:
public class AdapterScoring extends ArrayAdapter<ArrayList<ParticipantResponse>> {
Context context;
int item_Layaut;
ArrayList<Participant> data;
ApiUtils apiUtils;
public AdapterScoring(@NonNull Context context, int resource, @NonNull ArrayList objects) {
super(context, resource, objects);
this.context = context;
this.item_Layaut = resource;
this.data = objects;
}
@Override
public int getCount() {
return data.size();
}
public void setData(ParticipantResponse data) {
if(data!=null){
this.data = data.getParticipant().getScoring();
this.notifyDataSetChanged();
}
}
@NonNull
@Override
public View getView(int position, @Nullable View convertView, @NonNull ViewGroup parent) {
if (convertView == null) {
LayoutInflater layoutInflater = LayoutInflater.from(context);
convertView = layoutInflater.inflate(item_Layaut, parent, false);
}
String image = data.get(position).getPhoto_profile();
String name = String.valueOf(data.get(position).getName());
String points = String.valueOf(data.get(position).getPoints());
if(image!= null) {
ImageView elementImage = convertView.findViewById(R.id.picture_participant);
Picasso.get().load(apiUtils.BASE_URL_PICTURE + image).fit().into(elementImage);
}
TextView elementName = convertView.findViewById(R.id.name_participant);
elementName.setText(name);
TextView elementPoints = convertView.findViewById(R.id.points_participant);
elementPoints.setText(points);
return convertView;
}
}
Фрагмент, где я хочу реализовать ListView с данными:
public class ScoringFragment extends Fragment {
AdapterScoring adapterScoring;
ListView listViewScoring;
int groupSelectedId = 0;
private APIService APIService;
UserResponse user = new UserResponse(200,null,null );
ParticipantResponse participantResponse = new ParticipantResponse(200,null,null );
Participant participants = new Participant();
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
View RootView = inflater.inflate(R.layout.fragment_scoring, container, false);
listViewScoring = (ListView) RootView.findViewById(R.id.scoring_listview);
APIService = ApiUtils.getAPIService();
adapterScoring = new AdapterScoring(getActivity().getApplicationContext(), R.layout.item_participant_layout, participantResponse.getParticipant().getScoring());
Log.d("User in Scoring", user.getUser().getName());
Log.d("User in Scoring", String.valueOf(groupSelectedId));
getAllParticipantByGroup(String.valueOf(groupSelectedId));
return RootView;
}
public void getAllParticipantByGroup(String id_group){
Call<ParticipantResponse> call = APIService.getParticipantsByGroup(id_group);
call.enqueue(new Callback<ParticipantResponse>() {
@Override
public void onResponse(Call<ParticipantResponse> call, Response<ParticipantResponse> response) {
if (response.isSuccessful()) {
participantResponse = response.body();
adapterScoring.notifyDataSetChanged();
adapterScoring.setData(participantResponse);
listViewScoring.setAdapter(adapterScoring);
Log.d("RESPONSE_SUCCESS", "Everything All right");
}
}
@Override
public void onFailure(Call<ParticipantResponse> call, Throwable t) {
Log.d("RESPONSE_FAILURE", String.valueOf(t));
}
});
}
public void recievedUserGroup(UserResponse userResponse, int groupSelected) {
if(user!=null ){
user =userResponse;
groupSelectedId = groupSelected;
}
}
}
Это мой модель класса ParticipantResponse
и Participant
:
private float code;
private Participant participant;
private ArrayList<Participant > participants = new ArrayList <> ();
private String msg;
public ParticipantResponse(float code, ArrayList<Participant> participants, String msg) {
this.code = code;
this.participants = participants;
this.msg = msg;
}
public float getCode() {
return code;
}
public Participant getParticipant() {
return participant;
}
public String getMsg() {
return msg;
}
public class Participant {
ArrayList<Participant> scoring = new ArrayList<Participant>();
public ArrayList<Participant> getScoring() {
return scoring;
}
public Participant (){
}
@SerializedName("name")
private String name;
@SerializedName("photo_profile")
private String photo_profile;
@SerializedName("id_user")
private float id_user;
@SerializedName("id_group")
private String id_group;
@SerializedName("admin_user_group")
private String admin_user_group;
@SerializedName("points")
private float points;
@SerializedName("own_budget")
private float own_budget;
@SerializedName("updated_at")
private String updated_at = null;
@SerializedName("created_at")
private String created_at;
@SerializedName("id")
private String id;
public Participant(float id_user, String id_group, String admin_user_group, float points, float own_budget, String updated_at, String created_at, String id) {
this.id_user = id_user;
this.id_group = id_group;
this.admin_user_group = admin_user_group;
this.points = points;
this.own_budget = own_budget;
this.updated_at = updated_at;
this.created_at = created_at;
this.id = id;
}
public float getId_user() {
return id_user;
}
public String getName() {
return name;
}
public String getPhoto_profile() {
return photo_profile;
}
public String getId_group() {
return id_group;
}
public String getAdmin_user_group() {
return admin_user_group;
}
public float getPoints() {
return points;
}
public float getOwn_budget() {
return own_budget;
}
public String getUpdated_at() {
return updated_at;
}
public String getCreated_at() {
return created_at;
}
public String getId() {
return id;
}
public float getId_user() {
return id_user;
}
public String getName() {
return name;
}
public String getPhoto_profile() {
return photo_profile;
}
public String getId_group() {
return id_group;
}
public String getAdmin_user_group() {
return admin_user_group;
}
public float getPoints() {
return points;
}
public float getOwn_budget() {
return own_budget;
}
public String getUpdated_at() {
return updated_at;
}
public String getCreated_at() {
return created_at;
}
public String getId() {
return id;
}