Привет, ребята, я создаю приложение, в котором я хочу вызвать Api, используя модернизацию. И отображение объектов в Recycle Viewer. Я получаю ошибку, когда пытаюсь использовать свой метод, который вызывает Api и помещает объекты в просмотрщик Recycle.
Ниже приведен код для адаптера пейджера.
public class IssueAdapter2 extends RecyclerView.Adapter<IssueAdapter2.SymptomViewHolder> {
private ArrayList<Issue> dataList;
public IssueAdapter2(ArrayList<Issue> dataList){
this.dataList = dataList;
}
@NonNull
@Override
public SymptomViewHolder onCreateViewHolder(@NonNull ViewGroup viewGroup, int i) {
LayoutInflater layoutInflater = LayoutInflater.from(viewGroup.getContext());
View view = layoutInflater.inflate(R.layout.row_item, viewGroup, false);
return new SymptomViewHolder(view);
}
@Override
public void onBindViewHolder(@NonNull SymptomViewHolder symptomViewHolder, int position) {
symptomViewHolder.symptomTitle.setText(dataList.get(position).getName());
}
@Override
public int getItemCount() {
return dataList.size();
}
public class SymptomViewHolder extends RecyclerView.ViewHolder {
TextView symptomTitle;
public SymptomViewHolder(@NonNull View itemView) {
super(itemView);
symptomTitle = itemView.findViewById(R.id.IssueName);
}
}
И код, где я вызываю модификацию, и метод, который создает представление recycle:
public class MainActivity extends AppCompatActivity {
private Button btnDiagnosis;
private RadioButton radioButton;
public TextView textResults;
private RecyclerView recyclerView;
private IssueAdapter2 issueAdapter2;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.quiz_layout);
btnDiagnosis = findViewById(R.id.bDiagnosis);
radioButton = findViewById(R.id.feverYes);
btnDiagnosis.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
startButtonActivity();
}
});
}
public void startButtonActivity(){
//create Retrofit instance
setContentView(R.layout.results);
//textResults = findViewById(R.id.resultsview);
Retrofit.Builder builder = new Retrofit.Builder()
.baseUrl("https://priaid-symptom-checker-v1.p.mashape.com/diagnosis/")
.addConverterFactory(GsonConverterFactory.create());
Retrofit retrofit = builder.build();
//get Symptoms
JsonPlaceHolderApi jsonPlaceHolderApi = retrofit.create(JsonPlaceHolderApi.class);
Call<ArrayList<Issue>> call = jsonPlaceHolderApi.searchForIssues(
"male",
"10,5",
"en-gb",
1994);
Log.wtf("URL Called", call.request().url() + "");
call.enqueue(new Callback<ArrayList<Issue>>() {
@Override
public void onResponse(Call<ArrayList<Issue>> call, Response<ArrayList<Issue>> response) {
if(response.isSuccessful()){
configViews(response.body());
}
}
@Override
public void onFailure(Call<ArrayList<Issue>> call, Throwable t) {
Toast.makeText(MainActivity.this, "Something went wrong...Error message: " + t.getMessage(),
Toast.LENGTH_LONG).show();
}
});
}
private void configViews(ArrayList<Issue> issueArrayList) {
recyclerView = findViewById(R.id.recyclerview);
issueAdapter2 = new IssueAdapter2(issueArrayList);
recyclerView.setHasFixedSize(true);
recyclerView.setRecycledViewPool(new RecyclerView.RecycledViewPool());
RecyclerView.LayoutManager layoutManager = new LinearLayoutManager(recyclerView.getContext());
recyclerView.setLayoutManager(layoutManager);
recyclerView.setAdapter(issueAdapter2);
}
}
Ошибка, которую я получаю:
E / URL Called: https://priaid -symptom-checker-v1.p.mashape.com / диагноз? Пол = мужской & Симптомы = 10,5 & Язык = en-gb & Год% 20% 20Birth = 1994
E / RecyclerView: адаптер не подключен; пропускающий макет
Пожалуйста, если кто-нибудь может сказать мне, как преодолеть это и как мой повторный просмотр получит адаптер
Спасибо большое!