Я создаю андроид, но список не отображается. Я думаю, что есть ошибка от моего адаптера. Я покажу JSON или мой сеттер getter, если вы, ребята, нуждаетесь в них.Recyclerview android, мой адаптер не работает
Это моя деятельность
public class ProductActivity extends AppCompatActivity {
private RecyclerView rvView;
private RecyclerView.Adapter adapter;
private RecyclerView.LayoutManager layoutManager;
public List<ProductList> list;
Context context;
public static final String MyPREFERENCES = "MyPrefs" ;
@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.f_list_of_product);
request(constructSignUpRequest());
rvView = (RecyclerView) findViewById(R.id.rv);
rvView.setHasFixedSize(true);
layoutManager = new LinearLayoutManager(this);
rvView.setLayoutManager(layoutManager);
adapter = new ProductAdapter(context, list);
rvView.setAdapter(adapter);
}
public BTNService.Api getApi() {
return getBTNService().getApi();
}
public BTNService getBTNService() {
return new BTNService(this);
}
void request(final ProductListRequest productListRequest) {
getApi().loadproductlist(productListRequest.getCode())
.observeOn(AndroidSchedulers.mainThread())
.subscribeOn(Schedulers.io())
.subscribe(new Observer<ProductListResponse>() {
@Override
public void onCompleted() {
}
@Override
public void onError(Throwable e) {
Timber.e(e.getLocalizedMessage());
}
@Override
public void onNext(ProductListResponse response) {
if (response != null) {
}
}
});
}
public ProductListRequest constructSignUpRequest() {
ProductListRequest request = new ProductListRequest();
SharedPreferences prefs = getSharedPreferences(MyPREFERENCES, MODE_PRIVATE);
request.setCode(prefs.getString(Category, ""));
return request;
}
это мой адаптер
public class ProductAdapter extends RecyclerView.Adapter<ProductAdapter.CatalogueHolder> {
private Context context;
private List<ProductList> list;
public ProductAdapter(Context context, List<ProductList> list) {
this.context = context;
this.list = list;
}
@Override
public CatalogueHolder onCreateViewHolder(ViewGroup parent, int viewType) {
View itemView = LayoutInflater.from(parent.getContext()).inflate(R.layout.row_product, parent, false);
CatalogueHolder catalogueHolder = new CatalogueHolder(itemView);
return catalogueHolder;
}
@Override
public void onBindViewHolder(CatalogueHolder holder, int position) {
final ProductList item = list.get(position);
holder.itemView.setTag(item);
holder.productName.setText(item.getName());
}
@Override
public int getItemCount() {
return list != null ? list.size() : 0;
}
public static class CatalogueHolder extends RecyclerView.ViewHolder {
@Bind(R.id.productname)
TextView productName;
@Bind(R.id.typeProduct)
TextView typeProduct;
@Bind(R.id.price)
TextView price;
@Bind(R.id.date)
TextView date;
public CatalogueHolder(View itemView) {
super(itemView);
ButterKnife.bind(this, itemView);
}
}
}
Я пытался отладить эту программу и получил List<ProductList> list
является нулевым
Вы только что ответили на свой вопрос, ваш список пуст, так как вы его не инициализировали. – Enzokie
Как это сделать? Прошу прощения, я новичок в разработке android – Pandu