Inicio » Cursos » App para Pizzería con delivery

Empezando el Proyecto

Panel de Administración

FrontEnd Diseño

Carrito de Compra

API Rest

Diseño de la App Android

Autenticación Android

Catálogo de Productos

Carrito de Compra Android

Extras

Curso App para Pizzería con delivery

Lección: 39 ➜ Detalle del Producto

Detalle del Producto

Lección 39: Detalle del Producto

Detalle del Producto

package codea.app.pizzeria9;

import androidx.annotation.NonNull;
import androidx.appcompat.app.AppCompatActivity;


import android.content.Intent;
import android.database.Cursor;
import android.os.Bundle;

import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.widget.Button;
import android.widget.ImageView;
import android.widget.RadioButton;
import android.widget.RadioGroup;
import android.widget.TextView;

import com.squareup.picasso.Picasso;

import java.util.ArrayList;

import codea.app.pizzeria9.database.DBManager;
import codea.app.pizzeria9.modelo.Precio;
import codea.app.pizzeria9.utils.Config;
import codea.app.pizzeria9.utils.RetrofitClient;
import codea.app.pizzeria9.utils.SessionManager;
import retrofit2.Call;
import retrofit2.Callback;
import retrofit2.Response;

public class DetalleActivity extends AppCompatActivity {

    private String nombre,descripcion,foto, tamano;
    private double precio;
    private int producto_id;
    private SessionManager _sessionManager;
    private ImageView _foto;
    private TextView _nombre, _precio,_descripcion;
    private Button _btnAddItem;
    private DBManager dbManager =  null;

    RadioGroup.LayoutParams layoutParams;
    ArrayList<Precio> precioArrayList;


    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_detalle);
        setTitle(getIntent().getExtras().getString("nombre"));
        getSupportActionBar().setDisplayHomeAsUpEnabled(true);
        dbManager = new DBManager(this);

        _sessionManager = new SessionManager(getApplicationContext());

        producto_id = getIntent().getExtras().getInt("producto_id");
        nombre = getIntent().getExtras().getString("nombre");
        precio = getIntent().getExtras().getDouble("precio");
        descripcion = getIntent().getExtras().getString("descripcion");
        foto = getIntent().getExtras().getString("foto");
        tamano = "";

        _foto = findViewById(R.id.pfoto);
        _nombre = findViewById(R.id.pnombre);
        _descripcion = findViewById(R.id.pdescripcion);
        _precio = findViewById(R.id.pprecio);
        _btnAddItem = findViewById(R.id.btnAddItem);

        _nombre.setText(nombre);
        _precio.setText("USD "+precio);
        _descripcion.setText(descripcion);

        _btnAddItem.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                dbManager.open();
                Cursor cursor = dbManager.checkItem(" producto_id="+producto_id);
                if (cursor.moveToFirst()){
                    Config.message(getApplicationContext(),nombre+" ya fue agregado!!");
                }else{
                    dbManager.addItem(nombre,precio,1,tamano,precio,foto,producto_id);
                    Config.message(getApplicationContext(),nombre+" agregado correctamente!!");
                }

            }
        });


        Picasso.get().load(Config.BASE_URL_IMG+foto).into(_foto);


        // RADIOGROUP
        RadioGroup radioGroup =findViewById(R.id.radio_group);
        Call<ArrayList<Precio>> call = RetrofitClient.getApiService().getPrecios(
                "Bearer "+_sessionManager.getAccessToken(),
                producto_id);

        call.enqueue(new Callback<ArrayList<Precio>>() {
            @Override
            public void onResponse(Call<ArrayList<Precio>> call, Response<ArrayList<Precio>> response) {
                //Log.d("precio:",response.body().toString());
                if(response.isSuccessful()){
                    precioArrayList = response.body();
                    for(Precio precio: precioArrayList){
                        RadioButton radioButton = new RadioButton(getApplicationContext());
                        radioButton.setText(precio.getNombre());
                        radioButton.setTag(precio.getPrecio());
                        radioButton.setId(View.generateViewId());
                        layoutParams = new RadioGroup.LayoutParams(
                                RadioGroup.LayoutParams.WRAP_CONTENT,
                                RadioGroup.LayoutParams.WRAP_CONTENT
                        );
                        radioGroup.addView(radioButton,layoutParams);
                    }
                }
            }

            @Override
            public void onFailure(Call<ArrayList<Precio>> call, Throwable t) {

            }
        });

        radioGroup.setOnCheckedChangeListener(new RadioGroup.OnCheckedChangeListener() {
            @Override
            public void onCheckedChanged(RadioGroup radioGroup, int i) {
                RadioButton rb = findViewById(i);
                _precio.setText("USD "+rb.getTag().toString());
                precio = Double.valueOf(rb.getTag().toString());
                tamano = rb.getText().toString();
            }
        });





    }

    @Override
    public boolean onCreateOptionsMenu(@NonNull Menu menu) {
        getMenuInflater().inflate(R.menu.menu,menu);
        return true;
    }

    @Override
    public boolean onOptionsItemSelected(@NonNull MenuItem item) {
        switch (item.getItemId()){
            case android.R.id.home:
                finish();
                return true;
            case R.id.action_cart:
                startActivity(new Intent(getApplicationContext(),CarritoActivity.class));
                return true;
            case R.id.action_user:
                _sessionManager.destroySession();
                return true;
        }
        return true;
    }

}

 


118 visitas

Descarga el código del proyecto

Descarga el código fuente del proyecto adquiriendo el curso completo

Descargar ahora

Más cursos que pueden interesarte

Más cursos

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