Inicio » Blog » Android

27 junio, 2020

¿Como hacer una app Android para Restaurante? I

Primera Parte ¿Cómo desarrollar una app Android para un restaurante? usaremos Android Studio.

¿Como hacer una app Android para Restaurante? I

Suscríbete a nuestro canal en Youtube

Suscríbirse

Objetivo

Desarrollo de un aplicativo móvil en Android cuya finalidad es mostrar información de un restaurante a los usuarios de la App como:

  • Platos
  • Bebidas
  • Promoción
  • Datos de contacto
  • Información de la empresa.

Software a utilizarse para el desarrollo 

  • Lenguaje de programación Java
  • SDK Android
  • IDE de desarrollo Android Studio.

Componentes y Widgets que se utilizaron:

  • LinearLayout
  • TextView
  • ImageView
  • Button
  • GridLayout
  • ListView
  • GridView

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 ));
 }
 });
 }
}

 

3 SECCIÓN PLATOS:

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 4890 veces

Compartir link del tutorial con tus amigos


Android Básico App Restaurante Android Básico App Restaurante

Curso Android Básico para desarrollar una app para un restaurante.

Descarga del código fuente

USD 10.00

Android PHP MySql App Restaurant Android PHP MySql App Restaurant

Curso Android, PHP y MySql App Restaurant con Pedidos Delivery

Descarga del código fuente

USD 12.00

Android PHP MySql Lector QR Android PHP MySql Lector QR

Curso Lector QR en Android con servicios web en PHP y MySql

Descarga del código fuente

USD 10.00

App Minimarket con Scanner QR App Minimarket con Scanner QR

Curso App Minimarket con Lector QR en Android, Flutter y Laravel

Descarga del código fuente

USD 200.00

Aprende más sobre Android

Cursos de programación

Codea Codea App

México, Colombia, España, Venezuela, Argentina, Bolivia, Perú

© Todos los derechos reservados Codea App | ...de frente al código!!! | 2020 - 2023