大家好,这是带有回收器视图的代码,它可以从数据库中收取3个选项,但是我的问题是,当我尝试在回收器视图中获取所有3个值时,>
首先是我的课:
public class OpcionesPonderacionClass { String Titulo; public OpcionesPonderacionClass(String titulo) { Titulo = titulo; } public OpcionesPonderacionClass() { } public String getTitulo() { return Titulo; } public void setTitulo(String titulo) { Titulo = titulo; }
}
这是我的适配器代码:
public class OpcionesPonderacionAdapter extends RecyclerView.Adapter<OpcionesPonderacionAdapter.ViewHolderOpcionesPonderacion> { Context mCtx; ArrayList<OpcionesPonderacionClass> opcionesPonderacionList; public OpcionesPonderacionAdapter(Context mCtx, ArrayList<OpcionesPonderacionClass> opcionesList) { this.mCtx = mCtx; this.opcionesPonderacionList = opcionesList; } @NonNull @Override public ViewHolderOpcionesPonderacion onCreateViewHolder(@NonNull ViewGroup parent, int viewType) { View view = LayoutInflater.from(parent.getContext()).inflate(R.layout.itemopcionponderacion,null); return new ViewHolderOpcionesPonderacion(view); } @Override public void onBindViewHolder(@NonNull ViewHolderOpcionesPonderacion holder, final int position) { holder.tituloOpcionPonderacion.setText(opcionesPonderacionList.get(position).getTitulo()); holder.npValueOpcionPonderacion.setMinValue(0); holder.npValueOpcionPonderacion.setMaxValue(10); } @Override public int getItemCount() { return opcionesPonderacionList.size(); } public class ViewHolderOpcionesPonderacion extends RecyclerView.ViewHolder { TextView tituloOpcionPonderacion; NumberPicker npValueOpcionPonderacion; public ViewHolderOpcionesPonderacion(@NonNull View itemView) { super(itemView); tituloOpcionPonderacion = itemView.findViewById(R.id.tv_TituloOpcionPonderacion); npValueOpcionPonderacion = itemView.findViewById(R.id.np_ValorNumero); } }
}
我可以看到所有选项的数字选择器从0到10,但现在我正尝试用所有用逗号“,”分隔的值获取Toast。
我的主要问题是如何从生成的所有数字选择器中获取.getValue()。
大家好,这是我的带有回收站视图的代码,它可以从数据库中收取3个选项,但是我的问题是,当我尝试在回收站视图中获取所有3个值时,首先是我的课:...
您可以设置侦听器以观察NumberPicker中的值更改并在某个Collection中收集值。
public static class OpcionesPonderacionAdapter
extends RecyclerView.Adapter<OpcionesPonderacionAdapter.ViewHolderOpcionesPonderacion> {
Context mCtx;
ArrayList<OpcionesPonderacionClass> opcionesPonderacionList;
private final Map<Integer, Integer> pickerValues = new HashMap<>();
private OnNumberPickerValueChangeListener valueChangeListener
= new OnNumberPickerValueChangeListener() {
@Override
public void onValueChange(int position, int value) {
pickerValues.put(position, value);
}
};
public OpcionesPonderacionAdapter(Context mCtx, ArrayList<OpcionesPonderacionClass> opcionesList) {
this.mCtx = mCtx;
this.opcionesPonderacionList = opcionesList;
}
@NonNull
@Override
public ViewHolderOpcionesPonderacion onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
View view = LayoutInflater.from(parent.getContext()).inflate(R.layout.itemopcionponderacion, null);
return new ViewHolderOpcionesPonderacion(view, valueChangeListener);
}
@Override
public void onBindViewHolder(@NonNull ViewHolderOpcionesPonderacion holder, final int position) {
holder.tituloOpcionPonderacion.setText(opcionesPonderacionList.get(position).getTitulo());
holder.npValueOpcionPonderacion.setMinValue(0);
holder.npValueOpcionPonderacion.setMaxValue(10);
}
@Override
public int getItemCount() {
return opcionesPonderacionList.size();
}
public Map<Integer, Integer> getPickerValues() {
return pickerValues;
}
public class ViewHolderOpcionesPonderacion extends RecyclerView.ViewHolder {
TextView tituloOpcionPonderacion;
NumberPicker npValueOpcionPonderacion;
public ViewHolderOpcionesPonderacion(@NonNull View itemView,
final OnNumberPickerValueChangeListener listener) {
super(itemView);
tituloOpcionPonderacion = itemView.findViewById(R.id.tv_TituloOpcionPonderacion);
npValueOpcionPonderacion = itemView.findViewById(R.id.np_ValorNumero);
npValueOpcionPonderacion.setOnValueChangedListener(new NumberPicker.OnValueChangeListener() {
@Override
public void onValueChange(NumberPicker picker,
int oldVal,
int newVal) {
listener.onValueChange(getAdapterPosition(), newVal);
}
});
}
}
interface OnNumberPickerValueChangeListener {
void onValueChange(int position, int value);
}
}