I try to Add new Table rows into TableLayout in my android app. I successfully added new table rows with multiple edittexts, by following an android tutorial. Now what I try to do is, I need to get user values for those edittexts using TextWatcher. I searched a lot of tutorials and tried a lot, but i was failed. This is how my app looks like before I add a button to this.
What I need is to Open Second row by clicking a button If user wants, and if user enters values to edittext fields they need to use and , final Result should display accordingly. This is my previous code, I posted with a question and solved it in here . Using Android TextWatcher with multiple user input values and Update thses values
If someone could help me, I highly appreciate your help. Thanks in advance.
Now this is my new XML code
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content">
    <Button
        android:id="@+id/Button1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentLeft="true"
        android:layout_alignParentStart="true"
        android:layout_alignParentTop="true"
        android:text="Add Line" />
    <ScrollView
        android:id="@+id/scrollView2"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:layout_alignParentLeft="true"
        android:layout_alignParentStart="true"
        android:layout_below="@+id/Button1"
        android:layout_marginTop="97dp">
        <RelativeLayout
            android:layout_width="wrap_content"
            android:layout_height="wrap_content">
            <TableLayout
                android:id="@+id/TableLayout1"
                android:layout_width="fill_parent"
                android:layout_height="wrap_content"
                android:divider="?android:attr/dividerHorizontal"
                android:showDividers="middle">
                <TableRow
                    android:id="@+id/TableRow1"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content">
                    <EditText
                        android:id="@+id/editText1"
                        android:layout_width="fill_parent"
                        android:layout_height="wrap_content"
                        android:ems="4"
                        android:padding="2dp" />
                    <EditText
                        android:id="@+id/editText2"
                        android:layout_width="fill_parent"
                        android:layout_height="wrap_content"
                        android:ems="4"
                        android:padding="2dp" />
                    <EditText
                        android:id="@+id/editText3"
                        android:layout_width="fill_parent"
                        android:layout_height="wrap_content"
                        android:ems="4"
                        android:padding="2dp" />
                    <TextView
                        android:id="@+id/TextViewsub1"
                        android:layout_width="wrap_content"
                        android:layout_height="match_parent"
                        android:layout_weight="1"
                        android:gravity="center"
                        android:hint="$ 0.00"
                        android:textSize="18dip" />
                </TableRow>
                <TableRow
                    android:id="@+id/TableRow2"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content">
                    <EditText
                        android:id="@+id/editText4"
                        android:layout_width="fill_parent"
                        android:layout_height="wrap_content"
                        android:ems="4"
                        android:padding="2dp" />
                    <EditText
                        android:id="@+id/editText5"
                        android:layout_width="fill_parent"
                        android:layout_height="wrap_content"
                        android:ems="4"
                        android:padding="2dp" />
                    <EditText
                        android:id="@+id/editText6"
                        android:layout_width="fill_parent"
                        android:layout_height="wrap_content"
                        android:ems="4"
                        android:padding="2dp" />
                    <TextView
                        android:id="@+id/TextViewsub2"
                        android:layout_width="wrap_content"
                        android:layout_height="match_parent"
                        android:layout_weight="1"
                        android:gravity="center"
                        android:hint="$ 0.00"
                        android:textSize="18dip" />
                </TableRow>
            </TableLayout>
        </RelativeLayout>
    </ScrollView>
    <TextView
        android:id="@+id/textView12"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_above="@+id/scrollView2"
        android:layout_alignParentEnd="true"
        android:layout_alignParentRight="true"
        android:layout_marginEnd="87dp"
        android:layout_marginRight="87dp"
        android:hint="Rs: 0.00" />
    <TextView
        android:id="@+id/textView13"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignTop="@+id/textView12"
        android:layout_marginEnd="86dp"
        android:layout_marginRight="86dp"
        android:layout_toLeftOf="@+id/textView12"
        android:layout_toStartOf="@+id/textView12"
        android:text="Total Value" />
</RelativeLayout>
This is now How my Java File looks like
 public class NewClass extends AppCompatActivity implements View.OnClickListener {
        Button btnAdd;
        int counter = 0;
        EditText edit1, edit2, edit3;
        TextView textViewSub1, textViewResult;
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            /*First row variables*/
            edit1 = (EditText) findViewById(R.id.editText1);
            edit2 = (EditText) findViewById(R.id.editText2);
            edit3 = (EditText) findViewById(R.id.editText3);
            textViewSub1 = (TextView) findViewById(R.id.TextViewsub1);
            textViewResult = (TextView) findViewById(R.id.textView12);
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_new_class);
            //add line button
            btnAdd = (Button) findViewById(R.id.Button1);
            btnAdd.setOnClickListener(this);
            edit1.addTextChangedListener(new LashCustomTextWatcher1());
            edit2.addTextChangedListener(new LashCustomTextWatcher1());
            edit3.addTextChangedListener(new LashCustomTextWatcher1());
        }
        public class LashCustomTextWatcher1 implements TextWatcher {
            @Override
            public void beforeTextChanged(CharSequence charSequence, int i, int i1, int i2) {
            }
            @Override
            public void onTextChanged(CharSequence charSequence, int i, int i1, int i2) {
            }
            @Override
            public void afterTextChanged(Editable editable) {
                textViewResult.setText(lashCalculate());
            }
        }
        public void onClick(View view) {
            TableLayout tl = (TableLayout) findViewById(R.id.TableLayout1);
            TableRow tr = new TableRow(this);
            //TextView tv = new TextView(this);
            //tv.setText("text ");
            edit1 = new EditText(this);
            //edit1.setText("Hello " + counter++);
            edit2 = new EditText(this);
            //edit2.setText("Item no " + counter++);
            edit3 = new EditText(this);
            //edit3.setText("Qty no " + counter++);
            textViewSub1 = new TextView(this);
            tr.addView(edit1);
            tr.addView(edit2);
            tr.addView(edit3);
            tr.addView(textViewSub1);
            //tr.addView(cb);
            tl.addView(tr, new TableLayout.LayoutParams(TableLayout.LayoutParams.WRAP_CONTENT, TableLayout.LayoutParams.WRAP_CONTENT));
        }
        public String lashCalculate() {
            //declaring variables
            double row1_value = 0;
            DecimalFormat df = new DecimalFormat("0.00");
            //calculate first row
            if (!edit1.getText().toString().equals("") && !edit2.getText().toString().equals("")) {
                double num1 = Double.parseDouble((edit1.getText().toString()));
                double num2 = Double.parseDouble((edit2.getText().toString()));
                row1_value = num1 * num2;
                double num3 = 0;
                if (!edit3.getText().toString().equals("")) {
                    num3 = Double.parseDouble((edit3.getText().toString()));
                    row1_value = (((100 - num3) * num2) * num1) / 100;
                }
                textViewSub1.setText(df.format(row1_value));
            }
            return df.format(row1_value);
    }
    }
				
                        
1) First of all in parent layout xml put linearlayot as below:
2) Than Make a layout that is want to add in every click.
3) You can now add your view in parent like below :