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的值,当它们被重新创建时,你怎么假装重新加载它们?