Эталонное изображение

Мне нужно добавить значения editexts, как в приложении для выставления счетов, и сохранить эти данные в общих настройках.

Как показано на изображении, мне нужно добавить все значения editexts (пустые), а затем вывести сумму в поле Result. Как и другие, Ety cage, Load, Ld Cage ..

Пожалуйста, кто-нибудь, помогите мне ..

CreateTextview.setOnClickListener (новый View.OnClickListener () {

        @SuppressLint({"SetTextI18n",})
        public void onClick(View v) {
            LinearLayout ll = new LinearLayout(getApplicationContext());
            ll.setOrientation(LinearLayout.HORIZONTAL);
            ll.setLayoutParams(new LinearLayout.LayoutParams(LinearLayout.LayoutParams.MATCH_PARENT, 100));
            LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(LinearLayout.LayoutParams.WRAP_CONTENT, LinearLayout.LayoutParams.WRAP_CONTENT);
            params.weight = 3.0f;
            params.setMargins(10,0,10,0);
           // ll.setPadding(5, 1, 10, 0);
            final TextView txt = new TextView(getApplicationContext());
            final EditText txtLoad = new EditText(getApplicationContext());
            final EditText txtLoad1 = new EditText(getApplicationContext());
            final EditText txtLoad2 = new EditText(getApplicationContext());
            final EditText txtLoad3 = new EditText(getApplicationContext());


            txt.setText( ""+(j + 1));
            txt.setPadding(5, 0, 5, 0);
            txt.setTextColor(Color.BLACK);
            txt.setTextSize(20);

            txtLoad.setHintTextColor(Color.GRAY);
            txtLoad.setHint("Empty");
            txtLoad.setPadding(5, 0, 1, 0);
            int txtloadid = j+10;
            txtLoad.setLayoutParams(params);
            txtLoad.setId(txtloadid);

            txtLoad1.setHint("Ety Cage");
            int txtload1id = j+50;
            txtLoad1.setId(txtload1id);

            txtLoad2.setHint("Load");
            int txtload2id = j+100;
            txtLoad2.setId(txtload2id);

            txtLoad3.setHint("Ld Cage");
            int txtload3id = j+150;
            txtLoad3.setTextSize(18);
            txtLoad3.setId(txtload3id);

            ll.addView(txt);
            ll.addView(txtLoad);
            ll.addView(txtLoad1);
            ll.addView(txtLoad2);
            ll.addView(txtLoad3);

            //Add fields to LinearLayout defined in XML
            mainLinear.addView(ll);
            count++;
            j=count;
        }


    });
0
PRASANTH PRS 16 Сен 2018 в 13:02

2 ответа

Лучший ответ

Каждый раз, когда вы создаете новый текст редактирования, для которого хотите указать значение, вы можете установить для него тег.

Также ведите список тегов. Таким образом вы позже сможете использовать итерации.

  1. Установите теги для просмотра с помощью view.setTag () и сохраните запись тегов в списке.
  2. перебирать список тегов и обращаться к своим представлениям с помощью findViewWithTag ()
  3. Во время итерации вы можете получить доступ к значениям в вашем тексте редактирования
0
Jitendra A 16 Сен 2018 в 10:25

Добавьте весь ваш EditText в ArrayList.

List<EditText > editTexts - new ArrayList<>();

Как только у вас есть это значение в вашем arrayylist, просто перебирайте массив List и добавляйте значения.

int sum = 0;
for(EditText editText: editTexts) {
    String sTextFromET = editText.getText().toString();
    int nIntFromET = new Integer(sTextFromET ).intValue();
    sum =+ nIntFromET 
}
0
Alex 16 Сен 2018 в 10:28