Antes de nada os aconsejaría que en vez de usar las máquinas virtuales de Android uséis vuestro teléfono, que irá mil veces mejor (ayer me dijeron que en el eclipse de Linux, las máquinas van perfectas; pero aún no lo he podido probar). Si no sabéis cómo conectar el móvil, preguntad ;)
Aquí tenéis una imagen del aspecto de la aplicación:
Ésto lo podéis hacer editando el activity.xml (es uno de los dos archivos que se os abren). De todos modos, aquí os dejo el mío:
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="wrap_content" android:layout_height="match_parent" android:paddingBottom="@dimen/activity_vertical_margin" android:paddingLeft="@dimen/activity_horizontal_margin" android:paddingRight="@dimen/activity_horizontal_margin" android:paddingTop="@dimen/activity_vertical_margin" tools:context="com.NikNitro.bpcalculator.Calculator" > <GridLayout android:id="@+id/gridLayout1" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_alignParentRight="true" android:layout_alignParentTop="true" android:layout_marginTop="25dp" android:alignmentMode="alignBounds" android:columnCount="2" android:useDefaultMargins="true" > <TextView android:id="@+id/textView1" android:layout_width="102dp" android:layout_column="0" android:layout_gravity="left|top" android:layout_row="0" android:text="Precio" android:textAppearance="?android:attr/textAppearanceLarge" /> <TextView android:id="@+id/textView2" android:layout_column="1" android:layout_gravity="center" android:layout_row="0" android:text="Cantidad(€)" android:textAppearance="?android:attr/textAppearanceLarge" /> <EditText android:id="@+id/Cantidad" android:layout_width="106dp" android:layout_column="0" android:layout_gravity="left|center_vertical" android:layout_row="1" android:ems="10" android:inputType="numberDecimal" /> <EditText android:id="@+id/Precio" android:layout_width="121dp" android:layout_column="1" android:layout_gravity="center" android:layout_row="1" android:ems="10" android:inputType="numberDecimal" /> </GridLayout> <Button android:id="@+id/button" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_alignLeft="@+id/gridLayout1" android:layout_below="@+id/gridLayout1" android:layout_marginTop="26dp" android:text="Aceptar" /> <GridLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_alignLeft="@+id/button" android:layout_below="@+id/button" android:layout_marginTop="75dp" android:columnCount="2" android:useDefaultMargins="true" > <TextView android:id="@+id/textView3" android:layout_width="126dp" android:layout_column="0" android:layout_gravity="right|top" android:layout_row="0" android:text="Vas a Pagar" android:textAppearance="?android:attr/textAppearanceLarge" /> <TextView android:id="@+id/textView4" android:layout_width="124dp" android:layout_gravity="left" android:text="Vas a Tener" android:textAppearance="?android:attr/textAppearanceLarge" /> <TextView android:id="@+id/Pago" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="left" android:textAppearance="?android:attr/textAppearanceLarge" /> <TextView android:id="@+id/Compra" android:layout_gravity="left" android:textAppearance="?android:attr/textAppearanceLarge" /> </GridLayout> </RelativeLayout>Como veis no es nada difícil de comprender (no digo nada de hacerlo, solo de entenderlo :P). Bueno, aquí os dejo ahora el código de la aplicación (el cual es más sencillo aún).
package com.NikNitro.bpcalculator; import android.app.Activity; import android.os.Bundle; import android.view.Menu; import android.view.MenuItem; import android.view.View; import android.view.View.OnClickListener; import android.widget.Button; import android.widget.EditText; import android.widget.TextView; import android.widget.Toast; public class Calculator extends Activity implements OnClickListener{ //Botón private Button boton; //Texto Editable por el usuario private EditText litros, precio; //Texto SÓLO legible por el usuario private TextView compra, preciofinal; // Variables enteras private double dlitros, dprecio, dcompra, dpreciofinal; @Override protected void onCreate(Bundle savedInstanceState) { //Éste método se ejecuta el primero al iniciar la aplicación. super.onCreate(savedInstanceState); setContentView(R.layout.activity_calculator); initialize(); } private void initialize() { // TODO Auto-generated method stub boton = (Button)findViewById(R.id.button); //Añado al botón el controlador. boton.setOnClickListener(this); //Así es como se inicializan los objetos para que queden // linkeados con el activity. litros = (EditText)findViewById(R.id.Cantidad); precio = (EditText)findViewById(R.id.Precio); compra = (TextView)findViewById(R.id.Compra); preciofinal = (TextView)findViewById(R.id.Pago); } @Override public boolean onCreateOptionsMenu(Menu menu) { // Inflate the menu; this adds items to the action bar if it is present. getMenuInflater().inflate(R.menu.calculator, menu); return true; } @Override public boolean onOptionsItemSelected(MenuItem item) { // Handle action bar item clicks here. The action bar will // automatically handle clicks on the Home/Up button, so long // as you specify a parent activity in AndroidManifest.xml. int id = item.getItemId(); if (id == R.id.action_settings) { return true; } return super.onOptionsItemSelected(item); } @Override public void onClick(View v) { // Al hacer click en algún botón, se llama aquí. //Si tuvieramos más de un botón tendríamos que ver a cual se refiere. Para ello usamos la v que nos pasan. calcular(); mostrarToast("Cálculo completo"); } private void mostrarToast(String string) { //Muestra un mensaje Toast texto1 = Toast.makeText(getBaseContext(), string, Toast.LENGTH_SHORT); texto1.show(); } private void calcular() { try { dlitros = Double.parseDouble(litros.getText().toString()); dprecio = Double.parseDouble(precio.getText().toString()); double prec = Math.rint(dprecio*100/dlitros)/100; compra.setText(prec+""); double desc = prec*0.05; preciofinal.setText((dprecio-desc)+""); } catch (Exception e) { mostrarToast("Rellene todos los campos correctamente, por favor"); } } }
Jeje, bueno, espero que no os queden dudas y (si os quedan) las preguntéis, pues estaré encantado de responderos. Un saludo y hasta la próxima ;)
No hay comentarios:
Publicar un comentario