【发布时间】:2020-05-31 01:04:29
【问题描述】:
我有一个带有卡片和微调器的 recyclerview,在微调器中选择的值我需要将其发送到下一个活动以计算估计价格。我在活动中有一个不属于 recyclerview 的按钮,它会将我带到我需要这些值的下一个活动。因此,当我单击此按钮时,我需要它来收集数据并将其发送到下一个活动,我该如何实现。
我附上了一张图片。红色箭头(我在下一个活动中需要的数据),蓝色箭头(按下按钮将我带到下一个活动)
我正在使用这种方法来读取值
findMerchantTextView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
for (int i = 0; i < totalCards; i++) {
Spinner printColorSpinner = mRecyclerView.findViewHolderForLayoutPosition(i).itemView.findViewById(R.id.printColorSpinner);
Spinner printSidesSpinner = mRecyclerView.findViewHolderForAdapterPosition(i).itemView.findViewById(R.id.printSidesSpinner);
Spinner printSizeSpinner = mRecyclerView.findViewHolderForAdapterPosition(i).itemView.findViewById(R.id.paperSizeSpinner);
Spinner pagesSpinner = mRecyclerView.findViewHolderForAdapterPosition(i).itemView.findViewById(R.id.pagesSpinner);
Spinner orientationSpinner = mRecyclerView.findViewHolderForAdapterPosition(i).itemView.findViewById(R.id.orientationSpinner);
Spinner bindingTypeSpinner = mRecyclerView.findViewHolderForAdapterPosition(i).itemView.findViewById(R.id.bindingTypeSpinner);
MaterialTextView copiesTextView = mRecyclerView.findViewHolderForAdapterPosition(i).itemView.findViewById(R.id.copiesNumberText);
String color = printColorSpinner.getSelectedItem().toString().trim();
String sides = printSidesSpinner.getSelectedItem().toString().trim();
String size = printSizeSpinner.getSelectedItem().toString().trim();
String pages = pagesSpinner.getSelectedItem().toString().trim();
String orientation = orientationSpinner.getSelectedItem().toString().trim();
String bindingType = bindingTypeSpinner.getSelectedItem().toString().trim();
String totalCopies = copiesTextView.getText().toString().trim();
}
}
});
但是当i变成2时,findViewHolderForLayoutPosition返回NullPointerException。我搜索并知道视图被回收了,只有在屏幕上布置的视图才能读取。
获得这些值的替代方法是什么?谢谢!
【问题讨论】:
标签: android android-recyclerview android-viewholder