Android 如何在编辑文本的自定义列表视图中输入值,当我选择第二个编辑文本时,我将丢失第一个编辑文本的值
我使用了一个带有四个编辑文本的自定义列表视图,并设置了列表的限制。之后,当我在编辑文本中输入值时,我选择一个编辑文本并输入值,然后我选择第二个编辑文本,然后首先丢失其值,我无法在列表中输入值:Android 如何在编辑文本的自定义列表视图中输入值,当我选择第二个编辑文本时,我将丢失第一个编辑文本的值,android,listview,android-custom-view,Android,Listview,Android Custom View,我使用了一个带有四个编辑文本的自定义列表视图,并设置了列表的限制。之后,当我在编辑文本中输入值时,我选择一个编辑文本并输入值,然后我选择第二个编辑文本,然后首先丢失其值,我无法在列表中输入值: listView = (ListView) findViewById(R.id.listPrice); final int value = size; for (int i = 0; i < value; i++) { array
listView = (ListView) findViewById(R.id.listPrice);
final int value = size;
for (int i = 0; i < value; i++) {
arrayList.add(i);
}
Button buttonAdd = new Button(this);
buttonAdd.setText("ADD");
listView.addFooterView(buttonAdd);
customAdapter = new CustomAdapter(ProductSizePrice.this,
R.layout.product_suze_detail, arrayList);
listView.setAdapter(customAdapter);
listView=(listView)findViewById(R.id.listPrice);
最终int值=大小;
for(int i=0;i
自定义适配器
public class CustomAdapter extends ArrayAdapter {
private List<Integer> list;
private List<ShowProducts> listShowProducts;
private Context context;
private int resource;
private String condition;
String uri;
int i = 0;
public CustomAdapter(@NonNull Context context, @LayoutRes int resource, @NonNull List<Integer> objects, String condition) {
super(context, resource, objects);
this.context = context;
this.resource = resource;
this.list = objects;
this.condition = condition;
}
@Override
public int getCount() {
return super.getCount();
}
@Nullable
@Override
public Object getItem(int position) {
return super.getItem(position);
}
@NonNull
@Override
public View getView(int position, @Nullable View convertView, @NonNull ViewGroup parent) {
// SurgicalonDetail surgicalonDetail=list.get(position);
View view = LayoutInflater.from(context).inflate(resource, parent, false);
if (condition == "Size_Price") {
EditText size = (EditText) view.findViewById(R.id.etSize);
EditText quantity = (EditText) view.findViewById(R.id.etQuantity);
EditText price = (EditText) view.findViewById(R.id.etPrice);
EditText cost = (EditText) view.findViewById(R.id.etCost);
ConstraintLayout constraintLayout = (ConstraintLayout) view.findViewById(R.id.productSizePriceLayout);
return view;
}
}
公共类CustomAdapter扩展了ArrayAdapter{
私人名单;
私人产品清单;
私人语境;
私有int资源;
私有字符串条件;
字符串uri;
int i=0;
公共CustomAdapter(@NonNull上下文、@LayoutRes int-resource、@NonNull列表对象、字符串条件){
超级(上下文、资源、对象);
this.context=上下文;
这个资源=资源;
this.list=对象;
这个条件=条件;
}
@凌驾
public int getCount(){
返回super.getCount();
}
@可空
@凌驾
公共对象getItem(int位置){
返回super.getItem(位置);
}
@非空
@凌驾
公共视图getView(int位置,@Nullable视图convertView,@NonNull视图组父级){
//surgicalondeail surgicalondeail=list.get(位置);
视图=LayoutInflater.from(上下文)。充气(资源,父项,false);
如果(条件=“尺寸价格”){
EditText size=(EditText)view.findViewById(R.id.etSize);
EditText数量=(EditText)view.findViewById(R.id.etQuantity);
EditText价格=(EditText)view.findViewById(R.id.etPrice);
EditText成本=(EditText)view.findViewById(R.id.etCost);
ConstraintLayout ConstraintLayout=(ConstraintLayout)view.findViewById(R.id.productSizePriceLayout);
返回视图;
}
}
从编辑文本中获取值
for (int i = 0; i < value; i++) {
View view = listView.getChildAt(i);
EditText etSize = (EditText) view.findViewById(R.id.etSize);
EditText etQuantity = (EditText) view.findViewById(R.id.etQuantity);
EditText etPrice = (EditText) view.findViewById(R.id.etPrice);
EditText etCost = (EditText) view.findViewById(R.id.etCost);
String sizeShow = etSize.getText().toString();
String quantityShow = etQuantity.getText().toString();
String priceShow = etPrice.getText().toString();
String costShow = etCost.getText().toString();
arrayListSize.add(sizeShow.toString());
arrayListQuantity.add(Integer.parseInt(quantityShow.toString()));
arrayListPrice.add(Integer.parseInt(priceShow.toString()));
arrayListCost.add(Integer.parseInt(costShow.toString()));
for(int i=0;i
如果保存,如何保存每个EditText的值?4编辑文本名称{大小名称、价格、数量、成本},列表视图中显示的这些编辑文本列表长度是5、6或其他一些东西当我输入记录时,我选择第一个编辑文本并输入数据,然后我选择第二个编辑文本,然后第一个编辑文本清除文本我不能在编辑文本中输入文本,有时2或3个编辑文本保留值,但至少他们也清除文本我是新开发的呃,我不明白发生了什么如果你不保留每个EditText的值,你如何假装在重新创建它们时重新加载它们?如果你这样做,你如何保留每个EditText的值?4编辑文本名称{大小名称,价格,数量,成本},列表视图中显示的这些编辑文本列表长度是5、6或其他一些东西当我输入记录时,我选择第一个编辑文本并输入数据,然后我选择第二个编辑文本,然后第一个编辑文本清除文本我不能在编辑文本中输入文本,有时2或3个编辑文本保留值,但至少他们也清除文本我是新开发的呃,我不明白发生了什么如果你不坚持每个EditText的值,当它们被重新创建时,你怎么假装重新加载它们?