我有一个回收者视图,显示水果列表。每个项目都有一个购买按钮。当我单击列表中项目的购买按钮时,该项目的详细信息应通过意图传递到订单列表页面,并应显示在回收站视图中。我使用ArrayList传递数据然后,当我点击继续按钮时,它将返回水果列表页面,我想购买另一种水果。但我的问题是,当我点击另一个项目的购买按钮时,只有该特定项目显示在订单列表中。上一个项目丢失,回收者视图只显示一行。(即最新数据)。任何人都可以帮忙吗?
这是适配器代码:
public ViewHolder(View view) {
super(view);
fruitname = (TextView) view.findViewById(R.id.category_name);
rate = (TextView) view.finenter code heredViewById(R.id.rate);
buy = (TextView) view.findViewById(R.id.buy);
mProfilepic = (ImageView) view.findViewById(R.id.profilepic);
}
}
@Override
public RecyclerView.ViewHolder onCreateViewHolder(ViewGroup viewGroup, int viewType) {
View rootView = LayoutInflater.
from(mContext).inflate(R.layout.list_item, null, false);
RecyclerView.LayoutParams lp = new RecyclerView.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT,
ViewGroup.LayoutParams.WRAP_CONTENT);
rootView.setLayoutParams(lp);
return new ViewHolder(rootView);
}
@Override
public void onBindViewHolder(final RecyclerView.ViewHolder viewHolder, final int position) {
item = mListItem.get(position);
final ViewHolder mViewHolder = (ViewHolder) viewHolder;
mViewHolder.fruitname.setText(item.get_name());
mViewHolder.rate.setText(item.get_email()+"/kg");
}
mViewHolder.buy.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
item1.set_contact(mListItem.get(position).get_designation());
item1.set_bank_fee(mListItem.get(position).get_name());
item1.set_category(mListItem.get(position).get_email());
dataItem.add(item1);
Intent intent = new Intent(mContext,OrderListActivity.class);
intent.putExtra("arraylist",dataItem);
mContext.startActivity(intent);
}
});
}
@Override
public int getItemCount() {
return mListItem.size();
}
注意:我使用了notifyDataSetChanged。
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.order_list);
mrecyclerview = (RecyclerView)findViewById(R.id.fruits_recycler);
mrecyclerview.setLayoutManager(new
LinearLayoutManager(getApplicationContext()));
dataItem =
(ArrayList<ListItem>)getIntent().getSerializableExtra("arraylist");
mOrderAdapter = new OrderAdapter(OrderListActivity.this,dataItem);
mrecyclerview.setAdapter(mOrderAdapter);
mOrderAdapter.notifyDataSetChanged();
}
}
答案 0 :(得分:0)
试试这个。
Intent intent = new Intent(mContext,OrderListActivity.class);
// edited here
intent.putParcelableArrayListExtra("arraylist", productList);
mContext.startActivity(intent);
下一个活动。
ArrayList<ListItem>) dataItem = getIntent().getParcelableArrayListExtra("arraylist");
if (dataItem != null && dataItem.size() > 0) {
mOrderAdapter = new OrderAdapter(OrderListActivity.this, dataItem);
mrecyclerview.setAdapter(mOrderAdapter);
// remove this
// mOrderAdapter.notifyDataSetChanged();
}