I'm developing an app to multiply two EditText
(quantity X value) and show the result in another EditText
. The problem is that there are several EditText
as shown in the following code:
<LinearLayout
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="match_parent">
<LinearLayout
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="wrap_content">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textAppearance="?android:attr/textAppearanceMedium"
android:text="Custos de Implantação"
android:id="@+id/textView110"
android:layout_margin="10dp"
android:textStyle="bold"
android:layout_gravity="center_horizontal" />
<LinearLayout
android:orientation="horizontal"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal" >
<LinearLayout
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="wrap_content" >
<LinearLayout
android:orientation="horizontal"
android:layout_width="match_parent"
android:layout_height="match_parent" >
<EditText
android:layout_width="@dimen/TamanhoQTDE"
android:layout_height="40dp"
android:inputType="number"
android:ems="10"
android:id="@+id/editQuantidade1"
android:layout_marginTop="@dimen/Formularios"
android:textSize="10dp"
android:textAlignment="center"
android:hint="@string/Quantidade"
android:layout_margin="@dimen/Quantidade"
android:digits="@string/digitosqtde" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textAppearance="?android:attr/textAppearanceSmall"
android:text="x"
android:id="@+id/textView93"
android:textSize="10dp" />
<EditText
android:layout_width="@dimen/TamanhoQTDE"
android:layout_height="40dp"
android:inputType="number"
android:ems="10"
android:id="@+id/editValor1"
android:layout_marginTop="@dimen/Formularios"
android:textSize="10dp"
android:textAlignment="center"
android:hint="@string/ValorUnitario"
android:layout_margin="@dimen/ValorUnit" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textAppearance="?android:attr/textAppearanceSmall"
android:text="="
android:id="@+id/textView94"
android:textSize="10dp" />
<EditText
android:layout_width="@dimen/TamanhoQTDE"
android:layout_height="40dp"
android:inputType="number"
android:ems="10"
android:id="@+id/editTotal1"
android:layout_marginTop="@dimen/Formularios"
android:textSize="10dp"
android:textAlignment="center"
android:hint="@string/ValoresTotais"
android:layout_margin="@dimen/ValorTotal"
android:editable="false"
android:focusable="false" />
</LinearLayout>
</LinearLayout>
</LinearLayout>
<LinearLayout
android:orientation="horizontal"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal" >
<LinearLayout
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@color/background" >
<LinearLayout
android:orientation="horizontal"
android:layout_width="match_parent"
android:layout_height="match_parent" >
<EditText
android:layout_width="@dimen/TamanhoQTDE"
android:layout_height="40dp"
android:inputType="number"
android:ems="10"
android:id="@+id/editQuantidade2"
android:layout_marginTop="@dimen/Formularios"
android:textSize="10dp"
android:textAlignment="center"
android:hint="@string/Quantidade"
android:layout_margin="@dimen/Quantidade"
android:digits="@string/digitosqtde" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textAppearance="?android:attr/textAppearanceSmall"
android:text="x"
android:id="@+id/textView99"
android:textSize="10dp" />
<EditText
android:layout_width="@dimen/TamanhoQTDE"
android:layout_height="40dp"
android:inputType="number"
android:ems="10"
android:id="@+id/editValor2"
android:layout_marginTop="@dimen/Formularios"
android:textSize="10dp"
android:textAlignment="center"
android:hint="@string/ValorUnitario"
android:layout_margin="@dimen/ValorUnit" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textAppearance="?android:attr/textAppearanceSmall"
android:text="="
android:id="@+id/textView100"
android:textSize="10dp" />
<EditText
android:layout_width="@dimen/TamanhoQTDE"
android:layout_height="40dp"
android:inputType="number"
android:ems="10"
android:id="@+id/editTotal2"
android:layout_marginTop="@dimen/Formularios"
android:textSize="10dp"
android:textAlignment="center"
android:hint="@string/ValoresTotais"
android:layout_margin="@dimen/ValorTotal"
android:editable="false"
android:focusable="false" />
</LinearLayout>
</LinearLayout>
</LinearLayout>
<LinearLayout
android:orientation="horizontal"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal" >
<LinearLayout
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="wrap_content" >
<LinearLayout
android:orientation="horizontal"
android:layout_width="match_parent"
android:layout_height="match_parent" >
<EditText
android:layout_width="@dimen/TamanhoQTDE"
android:layout_height="40dp"
android:inputType="number"
android:ems="10"
android:id="@+id/editQuantidade3"
android:layout_marginTop="@dimen/Formularios"
android:textSize="10dp"
android:textAlignment="center"
android:hint="@string/Quantidade"
android:layout_margin="@dimen/Quantidade"
android:digits="@string/digitosqtde" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textAppearance="?android:attr/textAppearanceSmall"
android:text="x"
android:id="@+id/textView105"
android:textSize="10dp" />
<EditText
android:layout_width="@dimen/TamanhoQTDE"
android:layout_height="40dp"
android:inputType="number"
android:ems="10"
android:id="@+id/editValor3"
android:layout_marginTop="@dimen/Formularios"
android:textSize="10dp"
android:textAlignment="center"
android:hint="@string/ValorUnitario"
android:layout_margin="@dimen/ValorUnit" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textAppearance="?android:attr/textAppearanceSmall"
android:text="="
android:id="@+id/textView106"
android:textSize="10dp" />
<EditText
android:layout_width="@dimen/TamanhoQTDE"
android:layout_height="40dp"
android:inputType="number"
android:ems="10"
android:id="@+id/editTotal2"
android:layout_marginTop="@dimen/Formularios"
android:textSize="10dp"
android:textAlignment="center"
android:hint="@string/ValoresTotais"
android:layout_margin="@dimen/ValorTotal"
android:editable="false"
android:focusable="false" />
</LinearLayout>
</LinearLayout>
</LinearLayout>
<LinearLayout
android:orientation="horizontal"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal" >
<LinearLayout
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="wrap_content" >
<LinearLayout
android:orientation="horizontal"
android:layout_width="match_parent"
android:layout_height="match_parent" >
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textAppearance="?android:attr/textAppearanceSmall"
android:text="TOTAL:"
android:id="@+id/textView95"
android:textSize="10dp" />
</LinearLayout>
</LinearLayout>
</LinearLayout>
</LinearLayout>
</LinearLayout>
And below is the code for Activity
:
package com.seapis.luanrabelo.seapis;
import android.app.Activity;
import android.os.Bundle;
import android.text.Editable;
import android.text.TextWatcher;
import android.view.WindowManager;
import android.widget.EditText;
import android.widget.TextView;
public class ViveirosBarragem extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.viveiros_barragem);
final EditText quantidade1=(EditText)findViewById(R.id.editQuantidade1);
final EditText quantidade2=(EditText)findViewById(R.id.editQuantidade2);
final EditText quantidade3=(EditText)findViewById(R.id.editQuantidade3);
final EditText valor1=(EditText)findViewById(R.id.editValor1);
final EditText valor2=(EditText)findViewById(R.id.editValor2);
final EditText valor3=(EditText)findViewById(R.id.editValor3);
final EditText total1=(EditText)findViewById(R.id.editTotal1);
final EditText total2=(EditText)findViewById(R.id.editTotal2);
final EditText total3=(EditText)findViewById(R.id.editTotal3);
/*Script para esconder o teclado */
getWindow().setSoftInputMode(
WindowManager.LayoutParams.SOFT_INPUT_STATE_ALWAYS_HIDDEN);
/*Script para Calculos */
quantidade1.addTextChangedListener(new TextWatcher() {
@Override
public void afterTextChanged(Editable s) {
}
@Override
public void beforeTextChanged(CharSequence s, int start, int count,
int after) {
// TODO Auto-generated method stub
}
@Override
public void onTextChanged(CharSequence s, int start, int before, int count) {
int quantidade_1 = Integer.parseInt(quantidade1.getText().toString());
int valor_1 = Integer.parseInt(valor1.getText().toString());
int total_1 = (quantidade_1 * valor_1);
total1.setText("R$ " + total_1);
int quantidade_2 = Integer.parseInt(quantidade2.getText().toString());
int valor_2 = Integer.parseInt(valor2.getText().toString());
int total_2 = (quantidade_2 * valor_2);
total2.setText("R$ " + total_2);
int quantidade_3 = Integer.parseInt(quantidade3.getText().toString());
int valor_3 = Integer.parseInt(valor3.getText().toString());
int total_3 = (quantidade_3 * valor_3);
total3.setText("R$ " + total_3);
}
});
}
}
Where values only calculate when I change the value of EditText
quantity1
Can anyone help me improve this?