27 junio, 2020
Primera Parte ¿Cómo desarrollar una app Android para un restaurante? usaremos Android Studio.
Suscríbete a nuestro canal en Youtube
SuscríbirseObjetivo
Desarrollo de un aplicativo móvil en Android cuya finalidad es mostrar información de un restaurante a los usuarios de la App como:
Software a utilizarse para el desarrollo
Componentes y Widgets que se utilizaron:
Diseño de la App
Manifest de la App
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="apptiva.arequipa.huaca">
<application
android:allowBackup="true"
android:icon="@drawable/ic_logo"
android:label="@string/app_name"
android:roundIcon="@drawable/ic_logo"
android:supportsRtl="true"
android:theme="@style/AppTheme">
<activity android:name=".ProductoActivity">
</activity>
<activity android:name=".EmpresaActivity" />
<activity android:name=".ContactoActivity" />
<activity android:name=".LocalesActivity" />
<activity android:name=".OfertasActivity" />
<activity android:name=".BebidasActivity" />
<activity android:name=".PlatosActivity" />
<activity android:name=".MenuActivity" />
<activity android:name=".MainActivity">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>
</manifest>
PANTALLA INICIAL:
Se ha utilizado un linearLayout dentro del cual colocamos un ImageView, TextView y Button
En la actividad agregamos el evento onclick el cual llevará a una siguiente actividad como es menú de opciones de la app.
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@color/colorAccent"
android:gravity="center"
tools:context=".MainActivity">
<ImageView
android:src="@drawable/ic_logo"
android:adjustViewBounds="true"
android:layout_width="wrap_content"
android:layout_height="wrap_content"/>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginBottom="50dp"
android:textSize="20dp"
android:textStyle="bold"
android:text="HUACA RESTAURANT"/>
<Button
android:id="@+id/btnEntrar"
android:layout_marginTop="100dp"
android:background="@drawable/btn"
android:text="ENTRAR"
android:layout_width="wrap_content"
android:layout_height="wrap_content"/>
</LinearLayout>
JAVA:
package restaurante.arequipa.huaca;
import androidx.appcompat.app.AppCompatActivity;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
public class MainActivity extends AppCompatActivity {
private Button btn;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
btn = findViewById(R.id.btnEntrar);
btn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
startActivity(new
Intent(getApplicationContext(),MenuActivity.class));
}
});
}
}
2. MENU PRINCIPAL:
Presenta la opciones de la app como son la sección platos, bebidas, ofertas, locales, contacto y empresa. Se ha usado un linearlayout e ImageView; para la distribución del menú de opciones empleamos un GridLayout con columna 2, cada opción está constituida por widget del tipo button con su evento onclicklistener para lanzar una siguiente actividad para mostrar el detalle de cada opción.
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:orientation="vertical"
android:layout_width="match_parent"
android:background="@color/colorAccent"
android:layout_height="match_parent"
tools:context=".MenuActivity">
<ImageView
android:src="@drawable/restaurante"
android:adjustViewBounds="true"
android:layout_width="match_parent"
android:layout_height="wrap_content"/>
<ImageView
android:src="@drawable/cinta"
android:adjustViewBounds="true"
android:layout_width="match_parent"
android:layout_height="wrap_content"/>
<GridLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_margin="10dp"
android:columnCount="2">
<Button
android:id="@+id/btnplatos"
android:layout_width="0dp"
android:layout_height="100dp"
android:layout_margin="10dp"
android:layout_columnWeight="1"
android:gravity="center"
android:layout_gravity="fill_horizontal"
android:background="@color/colorWhite"
android:text="PLATOS" />
<Button
android:id="@+id/btnbebidas"
android:layout_width="0dp"
android:layout_height="100dp"
android:layout_margin="10dp"
android:layout_columnWeight="1"
android:gravity="center"
android:layout_gravity="fill_horizontal"
android:background="@color/colorWhite"
android:text="BEBIDAS" />
<Button
android:id="@+id/btnofertas"
android:layout_width="0dp"
android:layout_height="100dp"
android:layout_margin="10dp"
android:layout_columnWeight="1"
android:gravity="center"
android:layout_gravity="fill_horizontal"
android:background="@color/colorWhite"
android:text="OFERTAS" />
<Button
android:id="@+id/btnlocales"
android:layout_width="0dp"
android:layout_height="100dp"
android:layout_margin="10dp"
android:layout_columnWeight="1"
android:gravity="center"
android:layout_gravity="fill_horizontal"
android:background="@color/colorWhite"
android:text="LOCALES" />
<Button
android:id="@+id/btncontacto"
android:layout_width="0dp"
android:layout_height="100dp"
android:layout_margin="10dp"
android:layout_columnWeight="1"
android:gravity="center"
android:layout_gravity="fill_horizontal"
android:background="@color/colorWhite"
android:text="CONTACTO" />
<Button
android:id="@+id/btnempresa"
android:layout_width="0dp"
android:layout_height="100dp"
android:layout_margin="10dp"
android:layout_columnWeight="1"
android:gravity="center"
android:layout_gravity="fill_horizontal"
android:background="@color/colorWhite"
android:text="EMPRESA" />
</GridLayout>
</LinearLayout>
JAVA:
package restaurante.arequipa.huaca;
import androidx.appcompat.app.AppCompatActivity;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
public class MenuActivity extends AppCompatActivity {
private Button _btnPlatos, _btnBebidas, _btnOfertas, _btnLocales,
_btnContacto, _btnEmpresa;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_menu);
_btnPlatos= findViewById(R.id.btnplatos);
_btnBebidas= findViewById(R.id.btnbebidas);
_btnOfertas= findViewById(R.id.btnofertas);
_btnLocales= findViewById(R.id.btnlocales);
_btnContacto= findViewById(R.id.btncontacto);
_btnEmpresa= findViewById(R.id.btnempresa);
_btnPlatos.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
startActivity(new Intent(getApplicationContext(),
PlatosActivity.class ));
}
});
_btnBebidas.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
startActivity(new Intent(getApplicationContext(),
BebidasActivity.class ));
}
});
_btnOfertas.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
startActivity(new Intent(getApplicationContext(),
OfertasActivity.class ));
}
});
_btnLocales.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
startActivity(new Intent(getApplicationContext(),
LocalesActivity.class ));
}
});
_btnContacto.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
startActivity(new Intent(getApplicationContext(),
ContactoActivity.class ));
}
});
_btnEmpresa.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
startActivity(new Intent(getApplicationContext(),
EmpresaActivity.class ));
}
});
}
}
Inflamos un listView con un BaseAdapter la información la declaramos en un ArrayList para que pueda mostrarse, creamos un layout resource platos.xml para la vista de cada ítem. Declaramos el evento onclickItemListener del Listview para lanzar un pantalla con el detalle del ítem elegido.
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
android:background="@color/colorAccent"
tools:context=".PlatosActivity">
<ImageView
android:src="@drawable/cinta"
android:adjustViewBounds="true"
android:layout_width="match_parent"
android:layout_height="wrap_content"/>
<ListView
android:id="@+id/listView"
android:layout_margin="20dp"
android:dividerHeight="10dp"
android:layout_width="match_parent"
android:layout_height="wrap_content"/>
</LinearLayout>
INFLAR EL LISTVIEW
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="horizontal"
android:gravity="center_vertical"
android:layout_marginBottom="5dp"
android:layout_width="match_parent"
android:background="@color/colorWhite"
android:layout_height="wrap_content">
<ImageView
android:layout_weight="1"
android:id="@+id/foto"
android:adjustViewBounds="true"
android:layout_width="match_parent"
android:layout_height="wrap_content"/>
<LinearLayout
android:orientation="vertical"
android:layout_weight="1"
android:padding="10dp"
android:layout_width="match_parent"
android:layout_height="wrap_content">
<TextView
android:id="@+id/nombre"
android:textStyle="bold"
android:textSize="18dp"
android:text="NOMBRE"
android:layout_width="match_parent"
android:layout_height="wrap_content"/>
<TextView
android:id="@+id/precio"
android:text="0.00"
android:layout_width="match_parent"
android:layout_height="wrap_content"/>
</LinearLayout>
</LinearLayout>
CÓDIGO JAVA:
package restaurante.arequipa.huaca;
import androidx.appcompat.app.AppCompatActivity;
import android.content.Context;
import android.content.Intent;
import android.os.Bundle;
import android.util.Log;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.AdapterView;
import android.widget.ArrayAdapter;
import android.widget.BaseAdapter;
import android.widget.ImageView;
import android.widget.ListView;
import android.widget.TextView;
import java.util.ArrayList;
import java.util.List;
public class PlatosActivity extends AppCompatActivity {
private ListView listaPlatos;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_platos);
setTitle("PLATOS");
listaPlatos = findViewById(R.id.listView);
final ArrayList<Plato> arrayList = new ArrayList<>();
arrayList.add(new Plato("Papas a la huancaína","plato_1",
"20.00","Consiste en papas cocidas bañadas en salsa huancaína, la cual
está hecha con salsa de queso, ajíes y leche. Su sabor es muy
característico y puede comerse como entrada o como acompañante de
otros platos como arroz con pollo."));
arrayList.add(new Plato("Choritos a la Chalaca","plato_2",
"20.00","Elaborado con choros, unos moluscos de la familia de los
mejillones, estas conchas se comen acompañados de un picadillo de
cebolla, tomate, culantro, jugo de limón y granos de choclo (maiz)
hervidos."));
arrayList.add(new Plato("Papa Rellena","plato_3",
"22.00","Masa de papa cocida rellena de carne de res picada guisada,
queso, cebollas, aceitunas y huevos duros, que luego es frita y
servida como entrada, o como plato de fondo cuando se le acompaña de
arroz."));
arrayList.add(new Plato("Parihuela","plato_4", "18.00","Esta
sopa tradicional del puerto de El Callao en Lima Metropolitana lleva
frutos del mar como cangrejos, choros, conchas, pulpo y varios tipos
de pescado cocidos a base de aderezos peruanos, ají amarillo, ají
panca, y un toque ácido que puede venir del limón, el vino o la chicha
de jora. Se consume sobre todo en invierno y es muy popular en la
costa peruana."));
arrayList.add(new Plato("Causa Limeña","plato_5", "24.00","
Esta especie de pastel de papa amarilla prensada combinada con ají y
limón se rellena con ensalada de atún, pollo o mariscos. Aunque su
origen es previo al Virreinato del Perú, le debe su nombre a la
campaña independentista. Para financiar los gastos de la independencia
en las calles de Lima se vendía este plato para apoyar a la causa."));
final AdapterPlatos adapterPlatos = new
AdapterPlatos(arrayList, this);
listaPlatos.setAdapter(adapterPlatos);
listaPlatos.setOnItemClickListener(new
AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view,
int position, long id) {
startActivity(new
Intent(getApplicationContext(),ProductoActivity.class)
.putExtra("nombre",arrayList.get(position).getNombre())
.putExtra("foto",arrayList.get(position).getFoto())
.putExtra("precio",arrayList.get(position).getPrecio())
.putExtra("descripcion",arrayList.get(position).getDescripcion())
);
}
});
}
public class AdapterPlatos extends BaseAdapter{
ArrayList<Plato> platos;
Context context;
public AdapterPlatos(ArrayList<Plato> p, Context c){
this.platos =p;
this.context = c;
}
@Override
public int getCount() {
return platos.size();
}
@Override
public Object getItem(int position) {
return platos.get(position);
}
@Override
public long getItemId(int position) {
return 0;
}
@Override
public View getView(int position, View convertView, ViewGroup
parent) {
convertView =
LayoutInflater.from(context).inflate(R.layout.platos, parent, false);
Plato plato = platos.get(position);
TextView _nombre = convertView.findViewById(R.id.nombre);
TextView _precio = convertView.findViewById(R.id.precio);
ImageView _foto = convertView.findViewById(R.id.foto);
_nombre.setText(plato.getNombre());
_precio.setText("S/. "+plato.getPrecio());
_foto.setImageResource(getResources().getIdentifier(plato.getFoto(),
"drawable", getPackageName()));
return convertView;
}
}
public class Plato{
private String nombre;
private String foto;
private String precio;
private String descripcion;
public Plato(String nombre, String foto, String precio, String
descripcion) {
this.nombre = nombre;
this.foto = foto;
this.precio = precio;
this.descripcion = descripcion;
}
public String getDescripcion() {
return descripcion;
}
public String getPrecio() {
return precio;
}
public String getNombre() {
return nombre;
}
public String getFoto() {
return foto;
}
}
}
AA
Leido 5339 veces
Curso Android Básico para desarrollar una app para un restaurante.
Descarga del código fuente
USD 10.00
Curso Android, PHP y MySql App Restaurant con Pedidos Delivery
Descarga del código fuente
USD 12.00
Curso Lector QR en Android con servicios web en PHP y MySql
Descarga del código fuente
USD 10.00
Curso App Minimarket con Lector QR en Android, Flutter y Laravel
Descarga del código fuente
USD 200.00
© Todos los derechos reservados Codea App | ...de frente al código!!! | 2020 - 2023