Android 列表中未显示数据
我正在尝试将数据设置到我的Android 列表中未显示数据,android,Android,我正在尝试将数据设置到我的recyclerView中,但无法将数据设置到列表中。当我调试时,它正在执行语句,并且在logcat中找到值。但是,当我运行时,在列表中找不到它。我试了很多。谁能帮忙吗。这就是我所做的 适配器1 SelectedAdditionalItemsAdapter adapter = new SelectedAdditionalItemsAdapter(activity, row.getAdditionalItems(), row); recyc
recyclerView
中,但无法将数据设置到列表中。当我调试时,它正在执行语句,并且在logcat中找到值。但是,当我运行时,在列表中找不到它。我试了很多。谁能帮忙吗。这就是我所做的
适配器1
SelectedAdditionalItemsAdapter adapter = new SelectedAdditionalItemsAdapter(activity, row.getAdditionalItems(), row);
recyclerView.setAdapter(adapter);
adapter.setData(row.getAdditionalItems());
选择的附加项目适配器
public class SelectedAdditionalItemsAdapter extends RecyclerView.Adapter<SelectedAdditionalItemsAdapter.ViewHolder> {
private List<Product> rows = new ArrayList<>();
Context context;
private OrderItem orderItem;
private Activity activity;
public OnOrderItemDeleteListner onOrderItemDeleteListner;
public SelectedAdditionalItemsAdapter(Context context,List<Product> rows,OrderItem orderItem) {
this.context = context;
this.activity = (Activity) context;
this.rows=rows;
this.orderItem=orderItem;
}
public SelectedAdditionalItemsAdapter(){
}
public Product getItem(int position) {
try {
return rows.get(position);
} catch (Exception e) {
return null;
}
}
public void setData(List<Product> rows) {
this.rows = rows;
notifyDataSetChanged();
}
@Override
public long getItemId(int position) {
return position;
}
@Override
public SelectedAdditionalItemsAdapter.ViewHolder onCreateViewHolder(ViewGroup parent, int position) {
return new SelectedAdditionalItemsAdapter.ViewHolder(LayoutInflater.from(parent.getContext())
.inflate(R.layout.additional_item_cell, parent, false));
}
@Override
public void onBindViewHolder(SelectedAdditionalItemsAdapter.ViewHolder holder, int position) {
Product row = getItem(position);
holder.bindVehicle(row, position);
}
@Override
public int getItemCount() {
try {
return rows.size();
} catch (NullPointerException e) {
return 0;
}
}
private void removeItem(int position) {
try {
this.rows.remove(position);
}catch (Exception e) {
}
notifyDataSetChanged();
}
class ViewHolder extends RecyclerView.ViewHolder {
TextView title, remarkView, quantityView, priceView;
ImageView deleteButton;
CircularNetworkImageView imageView;
private Product row;
ViewHolder(View view) {
super(view);
title = (TextView) view.findViewById(R.id.title_view);
remarkView = (TextView) view.findViewById(R.id.remark_view);
imageView = (CircularNetworkImageView) view.findViewById(R.id.image_view);
quantityView = (TextView) view.findViewById(R.id.quantity_view);
priceView = (TextView) view.findViewById(R.id.price_view);
deleteButton = (ImageView) view.findViewById(R.id.delete_button);
}
public void bindVehicle(final Product row, final int position) {
deleteButton.setTag(position);///added
this.row = row;
deleteButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
orderItem.removeProduct(row);
removeItem(position);
notifyDataSetChanged();
}
});
try {
this.title.setText(row.getName());
if(row.getDescription() != null && row.getDescription().length() > 0) {
remarkView.setText(row.getDescription());
remarkView.setVisibility(View.VISIBLE);
}else{
remarkView.setVisibility(View.GONE);
}
String title = row.getName();
imageView.setImageUrl(null, RequestQueue.getImageLoader());
ColorGenerator generator = ColorGenerator.MATERIAL;
int color = generator.getColor(title);
try {
if(title.length() > 0) {
TextDrawable drawable2 = TextDrawable.builder()
.buildRound(title.substring(0, 1), color);
imageView.setImageDrawable(drawable2);
}
}catch (NullPointerException e) {
}
quantityView.setText(Integer.toString((int)row.getQuantity()));
priceView.setText(row.getPriceForUnitToDisplay());
} catch (NullPointerException e) {
e.printStackTrace();
}}}
public interface OnOrderItemDeleteListner {
void onDeleteItem();
}}
如果
parent.getContext()
用于膨胀布局,请使用context
改变这个
return new SelectedAdditionalItemsAdapter.ViewHolder(LayoutInflater.from(parent.getContext())
.inflate(R.layout.additional_item_cell, parent, false));
到
还将layoutManager设置为RecyclerView
RecyclerView.LayoutManager mLayoutManager = new LinearLayoutManager(getContext());
recyclerView.setLayoutManager(mLayoutManager);
希望这会有所帮助。分享
活动和适配器代码的相关部分adapter.setData
的具体功能是什么?我在适配器中调用了SelectedAdditionalItemsDaper。我将适配器调用到一个活动中。我应该贴什么。好心的help@NavneetKrishnashare为SelectedAdditionalItemsAdapter.java
编码,以及您试图传递到适配器的列表(可能是数组列表)是什么posted@NavneetKrishnaThankyou谢谢你的帮助。我试过了,但没有working@Faysal谢谢你…非常感谢。。我明白了……但有一个问题。我只能设置一个value@Faysal艾哈迈德,你能帮忙吗?我也很乐意帮你。请检查您从row.getAdditionalItems()
this中获得了多少数据。我得到的数据为2。但列表仅显示1@Faysal艾哈迈德
return new SelectedAdditionalItemsAdapter.ViewHolder(LayoutInflater.from(context)
.inflate(R.layout.additional_item_cell, parent, false));
RecyclerView.LayoutManager mLayoutManager = new LinearLayoutManager(getContext());
recyclerView.setLayoutManager(mLayoutManager);