如何在Android中使用数组存储手动生成的编辑文本值

时间:2019-04-22 19:11:35

标签: java android arrays

enter image description here我已经使用RecyclerView完成了动态生成的EditText的工作,并在RecyclerView中使用了了TextWatcher来安排了数据,所有代码工作正常,但是我面临着将EditText的每个整数值存储在数组中的问题。假设我在RecyclerView中有3个EditText,然后将每个EditText随机分配为1,2和3,那么我想将每个值存储为[1,2,3]。.请让我知道解决方案并检查下面的代码,我该怎么做。

预先感谢。

 holder.edtValue.addTextChangedListener(new TextWatcher() {
        @Override
        public void beforeTextChanged(CharSequence s, int start, int count, int after) {

            ////////sum of edit text count//////////////

            if (s.length() > 0) {
                int number = Integer.parseInt(s.toString());
                ans -= number;

            }
            ///////////////////////////////////////////


        }

        @Override
        public void onTextChanged(CharSequence s, int start, int before, int count) {


        }

        @Override
        public void afterTextChanged(Editable s) {
            if (s.length() == 0)

            {
                android.get(position).setTicketId(String.valueOf(0));
                holder.edtValue.setText("0");
            } else {
                try {
                    double e1 = Double.parseDouble(s.toString());
                    double e2 = Double.parseDouble(android.get(position).getAmount());
                    double e3 = Double.parseDouble(holder.text.getText().toString());

                    int j = (int) e1;// this is important edit text value to count and save in array...
                    int j1 = (int) e2;
                    int j2 = (int) e3;

                    asasaqty = new String[android.size()];

                    if (s.length() != 0)
                    {
                        for (int i = 0; i < android.size(); i++) {

                            asasaqty[i] = android.get(i).getAmount();

                        }

                        System.out.println("==========asasaqty========" + Arrays.toString(asasaqty));

                    }

                    holder.txtAnswer.setText(String.valueOf(j * j1));
                    //android.add(position,).setTicketId(String.valueOf(e1*e2));
                    double e4 = j + j2;
                    android.get(position).setTicketId(String.valueOf(e4 * e2));
                    TicketBookFragment ticketBookFragment = new TicketBookFragment();
                    int value = 0;
                    for (int i = 0; i < android.size(); i++) {
                        value += Double.parseDouble(android.get(i).getTicketId());
                    }

                    ticketBookFragment.getamount(String.valueOf(value));


                    ////////sum of edit text count//////////////
                    // int number = Integer.parseInt(s.toString());
                    //ans += number;
                    ///////////////////////////////////////////

                    for (int i = 0; i < holder.edtValue.length(); i++) {

                        int number = Integer.parseInt(holder.edtValue.toString());
                        ans += number;

                        allVALUE.add(String.valueOf(ans));

                        abcdd = allVALUE.toString();

                       //allVALUE.add(",");
                    }

                    //abcdd = s.toString();
                    //txtOutput.setText("sum is " + ans);
                    //int count = holder.edtValue.getText().toString().length();

                    //holder.edtValue.getText().toString()
                    //ticketBookFragment.getamount(String.valueOf(value),ans);
                    //ticketBookFragment.getamount(String.valueOf(value),count);


                } catch (NumberFormatException e) {
                }

1 个答案:

答案 0 :(得分:0)

据我了解的问题。您要在EditText中输入1,2,3,并有一个数组[1,2,3]。

如果是这样,您必须非常准确地输入内容。然后将String.split()与“,”用作分隔符。这将为您提供一个String数组。然后遍历该数组,并使用parseInt创建一个整数数组。

另一种方法是遍历字符串并找到每个数字。

最后一种方法是使用Regex,并获取字符串中的所有数字。可能是一个非常高级的解决方案,但应该提一下。