¿Como hacer una app Android para Restaurante? I

Aplicativo en Android para un restaurante PARTE I

¿Como hacer una app Android para Restaurante? I

Aplicativo en Android para un restaurante PARTE I

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

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

Compártelo...talvez alguién lo necesite!

Whatsapp Messenger Facebook Twitter

Visitado 393 veces | Publicado hace 3 meses

Curso Flutter y Laravel Tienda Abarrotes con Delivery

Mira el temario del curso en el siguiente link
VER MÁS DETALLES DEL CURSO

Logo Codea App

© Todos los derechos reservados CODEA APP | Cursos de programación avanzados con proyectos reales | 2020