#java #android-studio #android-recyclerview #android-adapter
Вопрос:
Я начинающий разработчик для Android. И у меня есть проблема. У меня есть 2 списка. Один для списка баз данных, один для данных API. Я отправляю эти списки в RecyclerView и выполняю некоторые операции. Но при отправке в RecyclerView я предполагаю, что список данных API будет пустым для RecyclerView. RecyclerView не работает. Пожалуйста, помогите мне
Способ подключения для повторного просмотра
private void HisseRecyclerBagla(View rootview){
hisse_rc=rootview.findViewById(R.id.cuzdan_recycler_view_hisse);
mdata =new ArrayList<>();
cuzdanModelHisse= new CuzdanDaoHisse().Cuzdan(vt2);
adapterHisse= new VarliklarımHisseAdapter(getActivity(),cuzdanModelHisse, mdata);
System.out.println("Api hisse size " mdata.size());
hisse_rc.setLayoutManager(new LinearLayoutManager(getActivity()));
hisse_rc.setAdapter(adapterHisse);
}
Способ подключения API
public void DovizList(String company){
mdata =new ArrayList<>();
for(int i=0;i<cuzdanModelHisse.size();i ){
Call<HisseModel> call = api2.getUsers("https://api.twelvedata.com/quote?symbol="
cuzdanModelHisse.get(i).getHisse_adi()
"amp;apikey=6b957670874e4a7f81e0c77b7f193395amp;source=docs");
call.enqueue(new Callback<HisseModel>() {
@Override
public void onResponse(Call<HisseModel> call, Response<HisseModel> response) {
if(response.isSuccessful()){
HisseModel list = response.body();
hisse=list;
mdata.add(hisse);
adapter.notifyDataSetChanged();
}else{
System.out.println("Hata");
}
}
@Override
public void onFailure(Call<HisseModel> call, Throwable t) {
System.out.println(t.fillInStackTrace());
}
});
}
}
VarliklarimHisseAdapter
package com.kdb2018.sasa.percent.adapter;
import android.content.Context;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.TextView;
import androidx.annotation.NonNull;
import androidx.recyclerview.widget.RecyclerView;
import com.kdb2018.sasa.percent.R;
import com.kdb2018.sasa.percent.model.CuzdanModel;
import com.kdb2018.sasa.percent.model.HisseModel;
import java.io.Serializable;
import java.util.List;
public class VarliklarımHisseAdapter extends RecyclerView.Adapter<VarliklarımHisseAdapter.CardTasarimTutucu> implements Serializable {
private Context context;
private List<CuzdanModel.CuzdanModelHisse> cuzdanList;
private List<HisseModel> mdata;
public VarliklarımHisseAdapter(Context context, List<CuzdanModel.CuzdanModelHisse> cuzdanList, List<HisseModel> mdata) {
this.context = context;
this.cuzdanList = cuzdanList;
this.mdata = mdata;
}
@NonNull
@Override
public CardTasarimTutucu onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
View view = LayoutInflater.from(parent.getContext()).inflate(R.layout.cuzdan_rc_tasarim_hisse,parent,false);
return new CardTasarimTutucu(view);
}
@Override
public void onBindViewHolder(@NonNull CardTasarimTutucu holder, int position) {
CuzdanModel.CuzdanModelHisse cuzdan = cuzdanList.get(position);
for(int i=0;i<6;i ){
if(mdata.get(i).getSymbol().equals(cuzdan.getHisse_adi())){
holder.textViewHisseAdi.setText(cuzdan.getHisse_adi());
holder.textViewHisseDegeriAdapter.setText(mdata.get(i).getClose());
holder.textViewHisseAlisFiyatiAdapter.setText(String.valueOf(cuzdan.getHisse_alis_fiyati()));
holder.textViewHisseAdediAdapter.setText(String.valueOf(cuzdan.getHisse_alis_adeti()));
}
}
}
public void setMdata(List<HisseModel> mdata) {
this.mdata = mdata;
}
@Override
public int getItemCount() {
return Math.min(cuzdanList.size(),mdata.size());
}
public class CardTasarimTutucu extends RecyclerView.ViewHolder{
private TextView textViewHisseAdi, textViewHisseDegisimAdapter,
textViewHisseAdediAdapter, textViewHisseDegeriAdapter, textViewHisseAlisFiyatiAdapter;
public CardTasarimTutucu(@NonNull View itemView) {
super(itemView);
textViewHisseAdi = itemView.findViewById(R.id.textViewHisseAdiAdapter);
textViewHisseDegisimAdapter = itemView.findViewById(R.id.textViewHisseDegisimAdapter);
textViewHisseAdediAdapter = itemView.findViewById(R.id.textViewHisseAdediAdapter);
textViewHisseDegeriAdapter = itemView.findViewById(R.id.textViewHisseDegeriAdapter);
textViewHisseAlisFiyatiAdapter = itemView.findViewById(R.id.textViewHisseAlisFiyatiAdapter);
}
}
}