[尝试创建RecyclerView并在片段中使用Retrofit2填充数据但是当我运行应用程序并转到该片段时,它会关闭,
当我调试App在适配器的onCreateViewHolder]的以下行中关闭时
LayoutInflater inflater = LayoutInflater.from( context );
出现以下错误
RecyclerView: No adapter attached; skipping layout java.lang.NullPointerException: Attempt to invoke virtual method 'java.lang.Object android.content.Context.getSystemService(java.lang.String)' on a null object reference
以下是片段的代码
ApiConfig apiConfig = AppConfig.getRetrofit().create(ApiConfig.class); Call<List<TCImages>> call = apiConfig.getImages(); call.enqueue( new Callback<List<TCImages>>() { @Override public void onResponse(Call<List<TCImages>> call, Response<List<TCImages>> response) { tcImages = response.body(); recyclerView = (RecyclerView) getView().findViewById( R.id.recyclerView ); manager = new LinearLayout( getContext() ); tcAdapter = new TCAdapter( tcImages, getActivity() ); recyclerView.setAdapter( tcAdapter ); recyclerView.setLayoutManager(new LinearLayoutManager(getActivity())); } @Override public void onFailure(Call<List<TCImages>> call, Throwable t) { } } );
下面是我的适配器的代码
package com.example.tc; import android.content.Context; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.widget.TextView; import com.example.tc.networking.TCImages; import java.util.List; import androidx.annotation.NonNull; import androidx.fragment.app.FragmentActivity; import androidx.recyclerview.widget.RecyclerView; public class TCAdapter extends RecyclerView.Adapter<TCAdapter.MyViewHolder> { List<TCImages> tcImages; Context context; public TCAdapter(List<TCImages> tcImages, FragmentActivity activity){ this.tcImages = tcImages; } @NonNull @Override public MyViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) { LayoutInflater inflater = LayoutInflater.from( context ); View view = inflater.inflate( R.layout.item_tc_recycler, parent, false ); return new MyViewHolder(view); } @Override public void onBindViewHolder(@NonNull MyViewHolder holder, int position) { holder.textView.setText( tcImages.get( position ).getEmail() ); } @Override public int getItemCount() { return tcImages.size(); } public class MyViewHolder extends RecyclerView.ViewHolder { TextView textView; public MyViewHolder(@NonNull View itemView) { super( itemView ); textView = (TextView) itemView.findViewById( R.id.txtItem ); } } }
我正在学习阶段,正在获取活动代码,并在Fragment中对其进行转换。
[尝试创建RecyclerView并在片段中使用Retrofit2填充数据,但是当我运行应用程序并转到该片段时,它关闭了,当我调试应用程序在适配器的以下几行中关闭时...
Context context;
的值吗?