要将对象从ArrayList
移动到另一个类中的RecyclerView
,你需要遵循以下步骤:
RecyclerView
中,适配器负责将数据绑定到视图,并管理视图的创建和回收。RecyclerView
通过重用视图和局部刷新机制,显著提高了列表的滚动性能。ArrayList
。ArrayList
传递到目标类。RecyclerView
及其适配器。public class ItemModel {
private String title;
private String description;
public ItemModel(String title, String description) {
this.title = title;
this.description = description;
}
public String getTitle() {
return title;
}
public String getDescription() {
return description;
}
}
public class SourceActivity extends AppCompatActivity {
private ArrayList<ItemModel> itemList;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_source);
itemList = new ArrayList<>();
// 填充数据
itemList.add(new ItemModel("Title 1", "Description 1"));
itemList.add(new ItemModel("Title 2", "Description 2"));
// 启动目标Activity并传递数据
Intent intent = new Intent(this, TargetActivity.class);
intent.putParcelableArrayListExtra("item_list", itemList);
startActivity(intent);
}
}
public class TargetActivity extends AppCompatActivity {
private RecyclerView recyclerView;
private ItemAdapter adapter;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_target);
recyclerView = findViewById(R.id.recyclerView);
recyclerView.setLayoutManager(new LinearLayoutManager(this));
// 获取传递的数据
ArrayList<ItemModel> itemList = getIntent().getParcelableArrayListExtra("item_list");
// 设置适配器
adapter = new ItemAdapter(itemList);
recyclerView.setAdapter(adapter);
}
}
public class ItemAdapter extends RecyclerView.Adapter<ItemAdapter.ItemViewHolder> {
private ArrayList<ItemModel> itemList;
public ItemAdapter(ArrayList<ItemModel> itemList) {
this.itemList = itemList;
}
@NonNull
@Override
public ItemViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
View view = LayoutInflater.from(parent.getContext()).inflate(R.layout.item_layout, parent, false);
return new ItemViewHolder(view);
}
@Override
public void onBindViewHolder(@NonNull ItemViewHolder holder, int position) {
ItemModel item = itemList.get(position);
holder.title.setText(item.getTitle());
holder.description.setText(item.getDescription());
}
@Override
public int getItemCount() {
return itemList.size();
}
static class ItemViewHolder extends RecyclerView.ViewHolder {
TextView title, description;
ItemViewHolder(View itemView) {
super(itemView);
title = itemView.findViewById(R.id.title);
description = itemView.findViewById(R.id.description);
}
}
}
RecyclerView
的布局管理器和适配器已正确设置。notifyDataSetChanged()
或更细粒度的通知方法(如notifyItemChanged()
)来刷新列表。通过以上步骤,你可以有效地将对象从ArrayList
移动到另一个类中的RecyclerView
。
领取专属 10元无门槛券
手把手带您无忧上云