java - RecyclerView 适配器附加跳过布局,为什么?

标签 java android adapter android-recyclerview

我已经尝试了所有教程来解决我的问题,但没有一个给出解决方案。这是我的代码:

霹雳巴士 Activity 类

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_pilih_bus);

    mRecycler = (RecyclerView) findViewById(R.id.recyclerView1);
    mManager = new LinearLayoutManager(this);
    mRecycler.setLayoutManager(mManager);
    mRecycler.setHasFixedSize(true);

    api = ApiClient.getApiClient().create(ApiBus.class);
    Call<ResponseModel> getdata = api.getBus();
    getdata.enqueue(new Callback<ResponseModel>() {
        @Override
        public void onResponse(Call<ResponseModel> call, Response<ResponseModel> response) {
            Log.d("RETROFIT", "RESPONSE : " + response.body().getmKode());
            mItems = response.body().getResult();

            mAdapter = new BusAdapter(PilihBusActivity.this, mItems);
            mRecycler.setAdapter(mAdapter);

        }

        @Override
        public void onFailure(Call<ResponseModel> call, Throwable t) {
            Log.d("RETROFIT", "FAILED : respon gagal");
        }
    });

我不知道为什么以及障碍在哪里,但让我向您展示我的适配器类,

这是我的适配器类:

public class BusAdapter extends 
RecyclerView.Adapter<BusAdapter.ViewHolders> {

List<Bus> buses;
Context ctx;


public BusAdapter(Context ctx, List<Bus> buses) {
    this.buses = buses;
    this.ctx = ctx;
}

public void setmList(List<Bus>mList){
    this.buses = mList;
    notifyDataSetChanged();
}

@NonNull
@Override
public BusAdapter.ViewHolders onCreateViewHolder( ViewGroup parent, int viewType) {

    View layout = LayoutInflater.from(parent.getContext()).inflate(R.layout.activity_pilih_bus, parent, false);
    ViewHolders holder = new ViewHolders(layout);
    return holder;
}

@Override
public void onBindViewHolder( BusAdapter.ViewHolders holder, final int position) {
    //  holder.dari_id.setText(mList.get(position).getDari_id());
    //  holder.ke_id.setText(mList.get(position).getKe_id());
    holder.class_name.setText(buses.get(position).getClass_name());
    holder.price.setText(buses.get(position).getPrice());
    holder.time_dari.setText(buses.get(position).getTime_dari());




}

@Override
public int getItemCount() {
    return buses.size();
}

public class ViewHolders extends RecyclerView.ViewHolder {

    TextView  class_name, price, time_dari;
    ImageView image;


    public ViewHolders( View itemView) {
        super(itemView);


        image = (ImageView) itemView.findViewById(R.id.image);
        class_name =  (TextView) itemView.findViewById(R.id.class_name);
        price = (TextView)itemView.findViewById(R.id.price);
        time_dari = (TextView) itemView.findViewById(R.id.time_dari);




    }
}

我遇到了同样的问题“没有附加适配器跳过布局”,并且我已经设置了适配器。 请帮助我,提前谢谢您

最佳答案

尝试这样

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_pilih_bus);

    mRecycler = (RecyclerView) findViewById(R.id.recyclerView1);
    mManager = new LinearLayoutManager(this);
    mRecycler.setLayoutManager(mManager);
    mRecycler.setHasFixedSize(true);

    // add below lines here 
     mItems = new ArrayList<>(); // initialize your mItems here
     mAdapter = new BusAdapter(this, mItems); // initialize your adapter with empty mItems
     mRecycler.setAdapter(mAdapter); // set adapter to your recyclerview like this

    api = ApiClient.getApiClient().create(ApiBus.class);
    Call<ResponseModel> getdata = api.getBus();
    getdata.enqueue(new Callback<ResponseModel>() {
        @Override
        public void onResponse(Call<ResponseModel> call, Response<ResponseModel> response) {
            Log.d("RETROFIT", "RESPONSE : " + response.body().getmKode());

            if(response.isSuccessful()){ // you should check your response is ok or not before doing further action with the response.

                  mItems.clear(); // this will clear all privous data from mItmes
                  mItems.addAll(response.body().getResult()); // add all data to your list
                  mAdapter.notifyDataSetChanged(); // this will notify your adapter that your data set has been changed.

            }else{
                 // handle if your api response is not okay
            }

        }

        @Override
        public void onFailure(Call<ResponseModel> call, Throwable t) {
            Log.d("RETROFIT", "FAILED : respon gagal");
        }
    });

关于java - RecyclerView 适配器附加跳过布局,为什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59525800/

相关文章:

java - HSQLDB.脚本文件

java - 直播链接 MediaPlayer Android

Java DOM解析xml节点中的html

java - 如何从android中的原始有效负载中提取值(value)?

java - 如何连接两个 fragment 并在适配器中编写监听器

ios - 无法从我的协议(protocol)类调用委托(delegate)方法

java - 如何更改 Ant 的 XMLValidate 任务提供的验证 "level"?

android - 在一个 Android 应用程序中有多个 SQLiteOpenhelper

java - 使用 jcodec SequenceEncoder

android - 我什么时候应该在 Android 中使用 BaseAdapter?