Calculadora de Gorjetas
Bom dia a todos, bem vindos ao blog Códigos Android!
Vou mostar a vocês, nessa primeira postagem, como fazer uma Calculadora de Gorjetas simples no android.
Interface Gráfica
Segue a baixo o código xml da interfece main.xml do nosso aplicativo:
<TableLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:padding="1dp"
tools:context=".Main" >
<TableRow
android:id="@+id/tableRow0"
android:layout_width="wrap_content"
android:layout_height="wrap_content" >
<TextView
android:id="@+id/lblTotalDaConta"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_column="0"
android:gravity="right"
android:paddingRight="5dp"
android:text="@string/total_conta" />
<EditText
android:id="@+id/txtTotalDaConta"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_span="3"
android:layout_weight="1"
android:inputType="numberDecimal"
android:text="0.00" >
<requestFocus />
</EditText>
</TableRow>
<TableRow
android:id="@+id/tableRow1"
android:layout_width="wrap_content"
android:layout_height="wrap_content" >
<RadioGroup
android:id="@+id/radioGorjetas"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_column="0"
android:layout_span="4"
android:layout_weight="1" >
<RadioButton
android:id="@+id/rb10RadioButton"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:checked="true"
android:text="10%" />
<RadioButton
android:id="@+id/rb15RadioButton"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="15%" />
<RadioButton
android:id="@+id/rb20RadioButton"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="20%" />
</RadioGroup>
</TableRow>
<TableRow
android:id="@+id/tableRow2"
android:layout_width="wrap_content"
android:layout_height="wrap_content" >
<Button
android:id="@+id/btCalcularGorjeta"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/calcular" />
</TableRow>
</TableLayout>
Código
Segue abaixo o código da aplicação.
public class Main extends Activity implements OnClickListener {
/* Váriaval double para calcular o total da conta com acréscimo de gorjeta
e os componentes utilizados nesse aplicativo */
private double valorTotalDaConta;
private EditText txtTotalDaConta;
private RadioGroup radioGorjetas;
private RadioButton rb10RadioButton;
private RadioButton rb15RadioButton;
private RadioButton rb20RadioButton;
private Button btCalcularGorjeta;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
/* Chama o método inicializar que inicializa os componentes da tela */
inicializar();
/* Chama o método listenes que trata os eventos na tela, nesse caso o evento do botão Calcular*/
listenres();
}
/* Inicializa os componnentes da tela */
private void inicializar() {
txtTotalDaConta = (EditText) findViewById(R.id.txtTotalDaConta);
radioGorjetas = (RadioGroup) findViewById(R.id.radioGorjetas);
rb10RadioButton = (RadioButton) findViewById(R.id.rb10RadioButton);
rb15RadioButton = (RadioButton) findViewById(R.id.rb15RadioButton);
rb20RadioButton = (RadioButton) findViewById(R.id.rb20RadioButton);
btCalcularGorjeta = (Button) findViewById(R.id.btCalcularGorjeta);
}
/* Trata os eventos dos componentes na tela (Apenas o Botão Calcular) */
private void listenres(){
btCalcularGorjeta.setOnClickListener(this);
}
/* Calcula o total da conta com o acréscimo do percentual desejado */
private double calculaPercentualTotal(int percentual) {
double percentualCalculado = 0.0;
if(percentual == 10){
/* Caucula o total da conta com gorjeta de 10% */
double dezPorcentoPersonalizado = valorTotalDaConta * .1;
double dezPorcentoTotal = valorTotalDaConta + dezPorcentoPersonalizado;
percentualCalculado = dezPorcentoTotal;
}else if(percentual == 15){
/* Calcula o total da conta com gorjeta de 15% */
double quinzePorcentoPersonalizado = valorTotalDaConta * .15;
double quinzePorcentoTotal = valorTotalDaConta
+ quinzePorcentoPersonalizado;
percentualCalculado = quinzePorcentoTotal;
}else if(percentual == 20){
/* Calcula o total da conta com gorjeta de 20% */
double vintePorcentoPersonalizado = valorTotalDaConta * .20;
double vintePorcentoTotal = valorTotalDaConta
+ vintePorcentoPersonalizado;
percentualCalculado = vintePorcentoTotal;
}else{
percentualCalculado = 0.0;
}
return percentualCalculado;
}
/* Calcula o percentual de gorjeta */
private double calculaPercentual(int percentual) {
double percentualCalculado = 0.0;
if(percentual == 10){
/* Caucula gorjeta de 10% */
double dezPorcentoPersonalizado = valorTotalDaConta * .1;
percentualCalculado = dezPorcentoPersonalizado;
}else if(percentual == 15){
/* Calcula gorjeta de 15% */
double quinzePorcentoPersonalizado = valorTotalDaConta * .15;
percentualCalculado = quinzePorcentoPersonalizado;
}else if(percentual == 20){
/* Calcula gorjeta de 20% */
double vintePorcentoPersonalizado = valorTotalDaConta * .20;
percentualCalculado = vintePorcentoPersonalizado;
}else{
percentualCalculado = 0.0;
}
return percentualCalculado;
}
/* Converte o valor de txtTotalDaConto em uma variável double */
private double mostraTotal(){
try{
valorTotalDaConta = Double.parseDouble(txtTotalDaConta.getText().toString());
}catch(NumberFormatException e){
/* Padrão se ocorrer uma execeção */
valorTotalDaConta = 0.0;
}
return valorTotalDaConta;
}
/* Método usado para exibir uma caixa de dialogo informando o total da conta, o percentual da gorjeta
* e o total com acréscimo do valor da gorjeta */
private void dialog(String titulo, String mensagem){
final AlertDialog dialog = new AlertDialog.Builder(this).create();
dialog.setButton(AlertDialog.BUTTON_NEUTRAL, "Ok", new
DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface arg0, int arg1) {
dialog.dismiss();
}
});
dialog.setTitle(titulo);
dialog.setMessage(mensagem);
dialog.setIcon(android.R.drawable.ic_menu_info_details);
dialog.show();
}
/* Implementa o evento do botão calcular de acordo com o radiobutton selecionado */
@Override
public void onClick(View v) {
switch(radioGorjetas.getCheckedRadioButtonId()){
case R.id.rb10RadioButton:
dialog("Total com acréscimo de 10%", "Total: " + "R$ " + String.format("%.02f", mostraTotal()) + "\n"
+ "10%: " + "R$ " + String.format("%.02f", calculaPercentual(10)) + "\n"
+ "Total + 10%: " + "R$ " + String.format("%.02f", calculaPercentualTotal(10)));
break;
case R.id.rb15RadioButton:
dialog("Total com acréscimo de 15%", "Total: " + "R$ " + String.format("%.02f", mostraTotal()) + "\n"
+ "15%: " + "R$ " + String.format("%.02f", calculaPercentual(15)) + "\n"
+ "Total + 15%: " + "R$ " + String.format("%.02f", calculaPercentualTotal(15)));
break;
case R.id.rb20RadioButton:
dialog("Total com acréscimo de 20%", "Total: " + "R$ " + String.format("%.02f", mostraTotal()) + "\n"
+ "20%: " + "R$ " + String.format("%.02f", calculaPercentual(20)) + "\n"
+ "Total + 20%: " + "R$ " + String.format("%.02f", calculaPercentualTotal(20)));
break;
default:
valorTotalDaConta = 0.0;
break;
}
}
}
Resultado:
Vou mostar a vocês, nessa primeira postagem, como fazer uma Calculadora de Gorjetas simples no android.
Interface Gráfica
Segue a baixo o código xml da interfece main.xml do nosso aplicativo:
<TableLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:padding="1dp"
tools:context=".Main" >
<TableRow
android:id="@+id/tableRow0"
android:layout_width="wrap_content"
android:layout_height="wrap_content" >
<TextView
android:id="@+id/lblTotalDaConta"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_column="0"
android:gravity="right"
android:paddingRight="5dp"
android:text="@string/total_conta" />
<EditText
android:id="@+id/txtTotalDaConta"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_span="3"
android:layout_weight="1"
android:inputType="numberDecimal"
android:text="0.00" >
<requestFocus />
</EditText>
</TableRow>
<TableRow
android:id="@+id/tableRow1"
android:layout_width="wrap_content"
android:layout_height="wrap_content" >
<RadioGroup
android:id="@+id/radioGorjetas"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_column="0"
android:layout_span="4"
android:layout_weight="1" >
<RadioButton
android:id="@+id/rb10RadioButton"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:checked="true"
android:text="10%" />
<RadioButton
android:id="@+id/rb15RadioButton"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="15%" />
<RadioButton
android:id="@+id/rb20RadioButton"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="20%" />
</RadioGroup>
</TableRow>
<TableRow
android:id="@+id/tableRow2"
android:layout_width="wrap_content"
android:layout_height="wrap_content" >
<Button
android:id="@+id/btCalcularGorjeta"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/calcular" />
</TableRow>
</TableLayout>
Interface Finalizada |
Código
Segue abaixo o código da aplicação.
public class Main extends Activity implements OnClickListener {
/* Váriaval double para calcular o total da conta com acréscimo de gorjeta
e os componentes utilizados nesse aplicativo */
private double valorTotalDaConta;
private EditText txtTotalDaConta;
private RadioGroup radioGorjetas;
private RadioButton rb10RadioButton;
private RadioButton rb15RadioButton;
private RadioButton rb20RadioButton;
private Button btCalcularGorjeta;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
/* Chama o método inicializar que inicializa os componentes da tela */
inicializar();
/* Chama o método listenes que trata os eventos na tela, nesse caso o evento do botão Calcular*/
listenres();
}
/* Inicializa os componnentes da tela */
private void inicializar() {
txtTotalDaConta = (EditText) findViewById(R.id.txtTotalDaConta);
radioGorjetas = (RadioGroup) findViewById(R.id.radioGorjetas);
rb10RadioButton = (RadioButton) findViewById(R.id.rb10RadioButton);
rb15RadioButton = (RadioButton) findViewById(R.id.rb15RadioButton);
rb20RadioButton = (RadioButton) findViewById(R.id.rb20RadioButton);
btCalcularGorjeta = (Button) findViewById(R.id.btCalcularGorjeta);
}
/* Trata os eventos dos componentes na tela (Apenas o Botão Calcular) */
private void listenres(){
btCalcularGorjeta.setOnClickListener(this);
}
/* Calcula o total da conta com o acréscimo do percentual desejado */
private double calculaPercentualTotal(int percentual) {
double percentualCalculado = 0.0;
if(percentual == 10){
/* Caucula o total da conta com gorjeta de 10% */
double dezPorcentoPersonalizado = valorTotalDaConta * .1;
double dezPorcentoTotal = valorTotalDaConta + dezPorcentoPersonalizado;
percentualCalculado = dezPorcentoTotal;
}else if(percentual == 15){
/* Calcula o total da conta com gorjeta de 15% */
double quinzePorcentoPersonalizado = valorTotalDaConta * .15;
double quinzePorcentoTotal = valorTotalDaConta
+ quinzePorcentoPersonalizado;
percentualCalculado = quinzePorcentoTotal;
}else if(percentual == 20){
/* Calcula o total da conta com gorjeta de 20% */
double vintePorcentoPersonalizado = valorTotalDaConta * .20;
double vintePorcentoTotal = valorTotalDaConta
+ vintePorcentoPersonalizado;
percentualCalculado = vintePorcentoTotal;
}else{
percentualCalculado = 0.0;
}
return percentualCalculado;
}
/* Calcula o percentual de gorjeta */
private double calculaPercentual(int percentual) {
double percentualCalculado = 0.0;
if(percentual == 10){
/* Caucula gorjeta de 10% */
double dezPorcentoPersonalizado = valorTotalDaConta * .1;
percentualCalculado = dezPorcentoPersonalizado;
}else if(percentual == 15){
/* Calcula gorjeta de 15% */
double quinzePorcentoPersonalizado = valorTotalDaConta * .15;
percentualCalculado = quinzePorcentoPersonalizado;
}else if(percentual == 20){
/* Calcula gorjeta de 20% */
double vintePorcentoPersonalizado = valorTotalDaConta * .20;
percentualCalculado = vintePorcentoPersonalizado;
}else{
percentualCalculado = 0.0;
}
return percentualCalculado;
}
/* Converte o valor de txtTotalDaConto em uma variável double */
private double mostraTotal(){
try{
valorTotalDaConta = Double.parseDouble(txtTotalDaConta.getText().toString());
}catch(NumberFormatException e){
/* Padrão se ocorrer uma execeção */
valorTotalDaConta = 0.0;
}
return valorTotalDaConta;
}
/* Método usado para exibir uma caixa de dialogo informando o total da conta, o percentual da gorjeta
* e o total com acréscimo do valor da gorjeta */
private void dialog(String titulo, String mensagem){
final AlertDialog dialog = new AlertDialog.Builder(this).create();
dialog.setButton(AlertDialog.BUTTON_NEUTRAL, "Ok", new
DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface arg0, int arg1) {
dialog.dismiss();
}
});
dialog.setTitle(titulo);
dialog.setMessage(mensagem);
dialog.setIcon(android.R.drawable.ic_menu_info_details);
dialog.show();
}
/* Implementa o evento do botão calcular de acordo com o radiobutton selecionado */
@Override
public void onClick(View v) {
switch(radioGorjetas.getCheckedRadioButtonId()){
case R.id.rb10RadioButton:
dialog("Total com acréscimo de 10%", "Total: " + "R$ " + String.format("%.02f", mostraTotal()) + "\n"
+ "10%: " + "R$ " + String.format("%.02f", calculaPercentual(10)) + "\n"
+ "Total + 10%: " + "R$ " + String.format("%.02f", calculaPercentualTotal(10)));
break;
case R.id.rb15RadioButton:
dialog("Total com acréscimo de 15%", "Total: " + "R$ " + String.format("%.02f", mostraTotal()) + "\n"
+ "15%: " + "R$ " + String.format("%.02f", calculaPercentual(15)) + "\n"
+ "Total + 15%: " + "R$ " + String.format("%.02f", calculaPercentualTotal(15)));
break;
case R.id.rb20RadioButton:
dialog("Total com acréscimo de 20%", "Total: " + "R$ " + String.format("%.02f", mostraTotal()) + "\n"
+ "20%: " + "R$ " + String.format("%.02f", calculaPercentual(20)) + "\n"
+ "Total + 20%: " + "R$ " + String.format("%.02f", calculaPercentualTotal(20)));
break;
default:
valorTotalDaConta = 0.0;
break;
}
}
}
Resultado:
Calculo de Gorjeta de 10% |
Calculo de Gorjeta de 15% |
Calculo de Gorjeta de 20% |
Bhai ne bhen ke seal tod dali brother sister sex stories
ResponderExcluir