使用以下功能,我动态添加视图。但是通过这个,“addview”的最后调用值将在所有视图中设置。喜欢如果我在其0索引中调用带有“aaaa”的addview函数,它将添加一个带有aaaa名称的视图,然后我再次在其0索引中调用带有“bbbb”的addview,它将添加一个视图,但这次设置为“bbbb” “以前的观点也是如此。现在,两个动态添加的视图都在其edittext中具有“bbbb”值。请帮忙。
public void addView(String[] values) {
layoutInflater =
(LayoutInflater) getActivity( ).getBaseContext( ).getSystemService(Context.LAYOUT_INFLATER_SERVICE);
View convertView = layoutInflater.inflate(R.layout.lay_fcp_child, null);
ImageView ivRemove;
EditText etName;
RelativeLayout layDOB;
final TextView tvDate;
final Spinner spRelationship;
tvDate = (TextView) convertView.findViewById(R.id.tv_ins_dob);
layDOB = (RelativeLayout) convertView.findViewById(R.id.lay_ins_dob);
etName = (EditText) convertView.findViewById(R.id.et_ins_personname);
etName.setFilters(new InputFilter[]{filterName, new InputFilter.LengthFilter(60)});
ivRemove = (ImageView) convertView.findViewById(R.id.iv_fcp_remove);
spRelationship = (Spinner) convertView.findViewById(R.id.sp_fcp_relationship);
AdapterIDValue adapterRelations = new AdapterIDValue(getActivity(), R.layout.spinner_selected_item_relation, alSRelationship);
spRelationship.setAdapter(new NothingSelectedSpinnerAdapter(adapterRelations, R.layout.spinner_hint_relationship, getActivity()));
etName.setText(values[0]);
spRelationship.setSelection(Integer.parseInt(values[3]));
tvDate.setText(values[1]);
tvDate.setTag(values[2]);
tvDate.setTextColor(Color.BLACK);
try {
layDynamic.addView(convertView);
}catch (Exception sdf){
System.err.print(sdf);
}
svMain.fullScroll(ScrollView.FOCUS_DOWN);
}
答案 0 :(得分:0)
是的,您可以使用RecyclerView
或ListView
创建,或者如果您想使用滚动视图生成每个视图的动态ID,那么您可以解决您的问题。
答案 1 :(得分:0)
每次调用addview(...)
方法都会创建一个新适配器并将其设置为spRelationship
。这个新的适配器取代了以前的。您不是“添加视图”,而是“设置视图”。
您只需将适配器设置一次并更改其数据。