Pasos Crear Web Service
Pasos Crear Web Service
Pasos Crear Web Service
Types
Alfa Soluciones TI
índice.
1. Grupo de funciones y módulo de funciones. 3
1
1.1. Creación de grupo de funciones. 3
1.2. Creación módulo de funciones. 4
1.3. Configuración de atributos en módulo de funciones. 5
1.4. Configuración de parámetros de entrada y salida. 6
1.5. Codificación de la lógica. 6
1.6. Crear un segundo módulo de funciones en el grupo de funciones (Opcional). 8
2. Web Service. 11
2.1. Crear Web Service. 11
2.1. Configurar Web Service. 16
3. Consumir Web Service. 17
2
Procedimiento para la generación de un
Web service.
1. Grupo de funciones y módulo de funciones.
Creación de nuestro servicio a través de la transacción SE37
Y creamos el nombre del grupo esto es un paso muy importante ya que este grupo será el
que expondremos para tener varios métodos dentro del mismo WS.
3
1.2. Creación módulo de funciones.
Ya una vez almacenado en el paquete y transporte el grupo de funciones, ingresamos el
nombre de nuestro módulo de función y damos en click en botón Crear
4
Una vez hecho todo correcto nos mandara la siguiente pantalla
5
1.4. Configuración de parámetros de entrada y salida.
Procederemos a configurar los parámetros de entrada pestaña Import, para este caso como
será una especie de calculadora estaremos esperando 2 valores de tipo numérico y uno de
tipo carácter que será el que nos diga qué tipo de operación queremos hacer. Nos quedará
algo como lo siguiente:
Nota: Para el ejemplo se utilizan elementos de datos estándar. Podrían utilizar sin
problemas los propios.
Ahora continuamos con la pestaña Export. Aqui sera donde regresaremos propiamente el
resultado quedando algo parecido a esto:
Nota: es importante activar los check’s que activo ya que esto hace que los valores se
copien en lugar que se usen por referencia. En todos los modulos de funcion con llamado
remoto el traspaso de valores es fundamental.
6
Guardamos y activamos, al activar nos pedirá no sólo activar el módulo si no también el
grupo de funciones activamos todo lo relacionado a lo que estamos haciendo. Al final
aparecerá activo como se muestra en la imagen.
probamos nuestro servicio de forma local. En la misma pantalla en la que estábamos damos
click en ejecutar.
7
1.6. Crear un segundo módulo de funciones en el grupo de
funciones (Opcional).
Listo creamos el módulo de función a continuación crearemos otro módulo de función dentro
de este mismo grupo de funciones este nos regresara una subcadena de un texto.Esto con
la finalidad de que nuestro Web Service lleve implícito 2 métodos a ejecutar, más adelante
se verá más claro esta parte.
Los pasos a seguir son los mismos de la creación del módulo de funciones
8
9
10
2. Web Service.
Se abrirá la siguiente pantalla para definir el nombre del servicio y una descripción. Una vez
terminado damos clic en continuar.
11
En la siguiente pantalla solo damos clic en continuar.
A continuación nos aparecerán las funciones de las que se compone el grupo nos
aseguramos de que estén seleccionadas todas y damos clic en continuar.
12
En la siguiente pantalla nos pedirá establecer un paquete y la orden de transporte donde se
cargara nuestro servicio WEB, se lo establecemos y damos clic en continuar.
Listo nos mandara la última pantalla donde solo daremos clic en finalizar.
13
Solo esperamos a que se genere el servicio y nos mande la siguiente pantalla, donde
activaremos el servicio.
Para validar que nuestro servicio WEB se haya creado satisfactoriamente ingresamos a la
transacción SOAMANAGER. En la pestaña Administración de servicios iremos a la segunda
y seleccionamos la opción de Web Service Configuration.
14
En la siguiente pantalla seleccionamos que queremos buscar Servicios le establecemos el
nombre de nuestro servicio.
15
2.2. Configurar Web Service.
En la siguiente pantalla seleccionamos que queremos crear un servicio, esto nos llevará a un
RoadMap de configuración
16
Continuamos con el segundo paso, donde solo marcaremos la opción de autentificación
“User ID/Password ”, presionamos next.
17
En el último paso, seleccionamos la operación de la que queremos generar el servicio web,
damos click en finalizar.
18
Al ejecutar el WSLD se muestra lo siguiente, es el documento WSDL que nos permite leer el
servicio en un sistema externo que tenga la necesidad de realizar la petición de nuestro
servicio web.
19
20
3. Consumir Web Service.
Para simular el consumo del web service utilizaremos la herramienta SoapUI
(https://www.soapui.org/downloads/soapui/), descargamos e instalamos la aplicación. Dentro de
la aplicación, en el menú seleccionamos File -> New SOAP Project.
21
Después de crear el proyecto en el panel izquierdo seleccionamos seleccionamos la firma
generada por la herramienta, nos mostrará la firma necesaria para generar la petición al
servicio web.
22
A hora en la pestana pestaña Auth se muestra un formulario donde introduciremos el usuario
y contraseña del sistema Sap.
23
Por último, asignamos los parámetros en la firma, en este caso el Web service es una
calculadora, introducimos los dos números y el tipo de operación, ejecutamos, obteniendo el
resultado el la pantalla de la derecha.
24
TODO LO QUE NECESITAS AL ALCANCE DE TU MANO
<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"
tools:context=".Detalles_Servicio.Activity_Detalles_Servicio">
<androidx.appcompat.widget.Toolbar
android:id="@+id/toolbar"
android:layout_width="match_parent"
android:layout_height="?attr/actionBarSize"
25
android:background="@color/primaryColor"
android:theme="@style/AppThemeCustomToolbar"
app:titleTextColor="@android:color/white"
app:popupTheme="@style/AppThemeCustomMenuToolbar"/>
<androidx.constraintlayout.widget.ConstraintLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@color/primaryTextColor">
<ScrollView
android:layout_width="0dp"
android:layout_height="0dp"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical">
<TextView
android:id="@+id/id_favorito_d"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text=""
android:visibility="gone"/>
<TextView
android:id="@+id/id_servicio_d"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text=""
android:visibility="gone"/>
<ImageView
android:id="@+id/iV_foto_prestador"
android:layout_width="match_parent"
android:layout_height="260dp"
android:contentDescription="@string/todo"
26
android:scaleType="fitXY"/>
<RelativeLayout
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:layout_marginTop="-30dp">
<androidx.cardview.widget.CardView
android:layout_height="match_parent"
android:layout_width="match_parent"
android:focusable="true"
android:layout_margin="10dp"
android:foreground="?selectableItemBackground"
app:cardElevation="5dp"
app:cardCornerRadius="1dp">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical">
<TextView
android:id="@+id/nombre_prestador"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:padding="6dp"
android:background="@drawable/bg_etiqueta_nombre"
android:gravity="center"
android:textAlignment="center"
android:text="@string/nombre"
android:textColor="@color/primaryTextColor"
android:textSize="20sp" />
<TextView
android:id="@+id/txt_descripcion"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="10dp"
android:layout_marginBottom="10dp"
27
android:paddingStart="10dp"
android:paddingEnd="10dp"
android:textAlignment="textStart"
android:textSize="16sp" />
<View
android:id="@+id/div_descripcion"
android:layout_width="match_parent"
android:layout_height="1dp"
android:background="?android:attr/listDivider" />
<RatingBar
android:id="@+id/rb_calificacion"
style="@android:style/Widget.Material.Light.RatingBar.Indicator"
android:layout_gravity="center"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="5dp"
android:layout_marginBottom="5dp"
android:isIndicator="true"
android:numStars="5"
android:stepSize="10"
android:theme="@style/RatingBar.Yellow" />
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_marginTop="5dp"
android:layout_marginBottom="10dp"
android:gravity="center_horizontal"
android:orientation="horizontal"
android:paddingStart="50dp"
android:paddingTop="5dp"
android:paddingEnd="50dp"
android:paddingBottom="5dp">
<ImageButton
android:id="@+id/btn_llamar"
android:layout_width="50dp"
android:layout_height="50dp"
android:background="@drawable/btn_bordes_redondeados_verde"
28
android:contentDescription="@string/todo"
app:srcCompat="@drawable/ic_phone_white" />
<Space
android:id="@+id/espacio_contactar"
android:layout_width="20dp"
android:layout_height="wrap_content"
/>
<ImageButton
android:id="@+id/btn_whatsapp"
android:layout_width="50dp"
android:layout_height="50dp"
android:background="@drawable/btn_bordes_redondeados_verde"
android:contentDescription="@string/todo"
android:cropToPadding="false"
app:srcCompat="@drawable/ic_whatsapp"/>
</LinearLayout>
</LinearLayout>
</androidx.cardview.widget.CardView>
</RelativeLayout>
<View
android:id="@+id/div_habilidades"
android:layout_width="match_parent"
android:layout_height="1dp"
android:background="?android:attr/listDivider"
android:visibility="gone"/>
<TextView
android:id="@+id/titulo_habilidades"
style="@style/etiqueta_titulo"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal"
android:layout_marginTop="10dp"
android:layout_marginBottom="10dp"
android:text="@string/habilidades" />
29
<TextView
android:id="@+id/txt_habilidades"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="10dp"
android:layout_marginBottom="10dp"
android:paddingStart="10dp"
android:paddingEnd="10dp"
android:textSize="16sp" />
<View
android:id="@+id/div_formacion"
android:layout_width="match_parent"
android:layout_height="1dp"
android:layout_marginTop="5dp"
android:layout_marginBottom="5dp"
android:background="?android:attr/listDivider" />
<TextView
android:id="@+id/titulo_formacion"
style="@style/etiqueta_titulo"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal"
android:layout_marginTop="10dp"
android:layout_marginBottom="10dp"
android:text="@string/formacion" />
<TextView
android:id="@+id/txt_formacion"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="10dp"
android:layout_marginBottom="10dp"
android:paddingStart="10dp"
android:paddingEnd="10dp"
android:textSize="16sp" />
<View
android:id="@+id/div_ubicacion"
android:layout_width="wrap_content"
30
android:layout_height="1dp"
android:layout_marginTop="10dp"
android:layout_marginBottom="10dp"
android:background="?android:attr/listDivider" />
<TextView
android:id="@+id/titulo_ubicacion"
style="@style/etiqueta_titulo"
android:layout_gravity="center_horizontal"
android:layout_marginTop="10dp"
android:layout_marginBottom="10dp"
android:text="@string/titulo_ubicacion_local" />
<androidx.cardview.widget.CardView
android:layout_height="match_parent"
android:layout_width="match_parent"
android:focusable="true"
android:foreground="?selectableItemBackground"
app:cardElevation="0dp"
app:cardCornerRadius="5dp"
android:layout_marginStart="5dp"
android:layout_marginTop="5dp"
android:layout_marginEnd="5dp">
<fragment
android:id="@+id/map"
android:name="com.google.android.gms.maps.SupportMapFragment"
android:layout_width="match_parent"
android:layout_height="210dp"
android:layout_gravity="center_horizontal"
tools:context="com.alfasolucionesti.chamby.Detalles_Servicio.Activity_Detalles
_Servicio" />
</androidx.cardview.widget.CardView>
<View
android:id="@+id/div_formas_pago"
android:layout_width="wrap_content"
android:layout_height="1dp"
android:layout_marginTop="5dp"
android:layout_marginBottom="5dp"
android:background="?android:attr/listDivider" />
31
<TextView
android:id="@+id/titulo_formas"
style="@style/etiqueta_titulo"
android:layout_gravity="center_horizontal"
android:layout_marginTop="10dp"
android:layout_marginBottom="10dp"
android:gravity="center_horizontal"
android:text="@string/titulo_formas_pago" />
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_gravity="center_horizontal"
android:layout_marginStart="50dp"
android:layout_marginTop="10dp"
android:layout_marginEnd="50dp"
android:foregroundGravity="center_horizontal"
android:gravity="center_horizontal"
android:orientation="horizontal">
<ImageView
android:id="@+id/img_tarjeta"
android:layout_width="100dp"
android:layout_height="50dp"
android:contentDescription="@string/todo"
android:src="@drawable/img_tarjeta" />
<Space
android:id="@+id/espacio_pagos"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1" />
<ImageView
android:id="@+id/img_efectivo"
android:layout_width="100dp"
android:layout_height="50dp"
android:contentDescription="@string/todo"
android:src="@drawable/img_efectivo"
/>
32
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_gravity="center_horizontal"
android:layout_marginStart="50dp"
android:layout_marginTop="5dp"
android:layout_marginEnd="50dp"
android:layout_marginBottom="10dp"
android:foregroundGravity="center_horizontal"
android:gravity="center_horizontal"
android:orientation="horizontal">
<TextView
android:id="@+id/txt_tarjeta"
android:layout_width="100dp"
android:layout_height="wrap_content"
android:gravity="center_horizontal"
android:text="@string/txt_tarjeta" />
<Space
android:id="@+id/espacio_txt_pagos"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1" />
<TextView
android:id="@+id/txt_efectivo"
android:layout_width="100dp"
android:layout_height="wrap_content"
android:layout_marginBottom="5dp"
android:gravity="center_horizontal"
android:text="@string/txt_efectivo" />
</LinearLayout>
<View
android:id="@+id/div_galeria"
android:layout_width="wrap_content"
android:layout_height="1dp"
android:layout_marginTop="5dp"
33
android:layout_marginBottom="5dp"
android:background="?android:attr/listDivider" />
<TextView
android:id="@+id/titulo_galeria"
style="@style/etiqueta_titulo"
android:layout_gravity="center_horizontal"
android:layout_marginTop="10dp"
android:layout_marginBottom="10dp"
android:text="@string/titulo_galeria" />
<androidx.cardview.widget.CardView
android:id="@+id/item_categoria"
android:layout_height="wrap_content"
android:layout_width="wrap_content"
android:layout_gravity="center_horizontal"
android:foreground="?selectableItemBackground"
android:layout_margin="2dp"
app:cardElevation="10dp"
app:cardCornerRadius="15dp"
>
<ImageView
android:id="@+id/imagen_galeria"
android:layout_width="260dp"
android:layout_height="260dp"
android:contentDescription="@string/todo"
tools:srcCompat="@tools:sample/avatars" />
</androidx.cardview.widget.CardView>
<androidx.recyclerview.widget.RecyclerView
android:id="@+id/recyclerView"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal"
android:layout_marginTop="10dp"
android:layout_marginBottom="10dp"
android:isScrollContainer="false"
android:paddingStart="5dp"
android:paddingEnd="5dp"
34
android:scrollbarAlwaysDrawHorizontalTrack="false"
android:scrollbars="horizontal">
</androidx.recyclerview.widget.RecyclerView>
<View
android:id="@+id/div_coment"
android:layout_width="wrap_content"
android:layout_height="1dp"
android:layout_marginTop="5dp"
android:layout_marginBottom="5dp"
android:background="?android:attr/listDivider" />
<TextView
android:id="@+id/titulo_coment"
style="@style/etiqueta_titulo"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal"
android:layout_marginTop="10dp"
android:layout_marginBottom="10dp"
android:text="@string/titulo_cal_com" />
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal"
android:layout_marginTop="5dp"
android:layout_marginBottom="5dp"
android:gravity="center_horizontal"
android:orientation="horizontal"
android:paddingStart="5dp"
android:paddingEnd="5dp">
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="vertical">
<TextView
android:id="@+id/calificacion_total"
android:layout_width="wrap_content"
35
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal"
android:text="@string/calificacion"
android:textSize="45sp" />
<RatingBar
android:id="@+id/ratingBar2"
style="@style/Widget.AppCompat.RatingBar.Indicator"
android:layout_width="wrap_content"
android:layout_height="36dp"
android:numStars="5"
android:stepSize="10"
android:theme="@style/RatingBar.Yellow" />
<TextView
android:id="@+id/textView4"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal"
android:visibility="gone" />
</LinearLayout>
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_marginTop="10dp"
android:layout_marginBottom="10dp"
android:orientation="horizontal">
<TextView
android:id="@+id/txt_indicador_coment"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:paddingStart="15dp"
android:paddingEnd="15dp"
android:textSize="16sp" />
<TextView
android:id="@+id/txt_cantidad_comentarios"
36
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:textSize="16sp" />
</LinearLayout>
<androidx.recyclerview.widget.RecyclerView
android:id="@+id/rvComentarios"
android:layout_width="wrap_content"
android:layout_height="0dp"
android:layout_gravity="center_horizontal"
android:layout_marginTop="5dp"
android:layout_marginBottom="5dp"
android:layout_weight="1"
android:isScrollContainer="false"
android:paddingStart="5dp"
android:paddingTop="5dp"
android:paddingEnd="5dp"
tools:itemCount="3" />
<Button
android:id="@+id/btn_todos_comentarios"
style="@style/Widget.AppCompat.Button.Borderless"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="end"
android:layout_marginTop="5dp"
android:layout_marginEnd="5dp"
android:layout_marginRight="5dp"
android:background="@drawable/boton_blanco"
android:onClick="onClickMostrarTodos"
android:text="@string/ver_todos_coment"
android:textAllCaps="false"
android:textColor="@color/primaryColor"
android:textSize="14sp" />
</LinearLayout>
</ScrollView>
</androidx.constraintlayout.widget.ConstraintLayout>
37
</LinearLayout>
<?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"
tools:context=".Detalles_Servicio.Activity_Detalles_Servicio">
<androidx.appcompat.widget.Toolbar
android:id="@+id/toolbar"
android:layout_width="match_parent"
android:layout_height="?attr/actionBarSize"
android:background="@color/primaryColor"
android:theme="@style/AppThemeCustomToolbar"
app:titleTextColor="@android:color/white"
app:popupTheme="@style/AppThemeCustomMenuToolbar"/>
<androidx.constraintlayout.widget.ConstraintLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@color/primaryTextColor">
<ScrollView
android:layout_width="0dp"
android:layout_height="0dp"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical">
<TextView
android:id="@+id/id_favorito_d"
38
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text=""
android:visibility="gone"/>
<TextView
android:id="@+id/id_servicio_d"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text=""
android:visibility="gone"/>
<ImageView
android:id="@+id/iV_foto_prestador"
android:layout_width="match_parent"
android:layout_height="260dp"
android:contentDescription="@string/todo"
android:scaleType="fitXY"/>
<RelativeLayout
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:layout_marginTop="-30dp">
<androidx.cardview.widget.CardView
android:layout_height="match_parent"
android:layout_width="match_parent"
android:focusable="true"
android:layout_margin="10dp"
android:foreground="?selectableItemBackground"
app:cardElevation="5dp"
app:cardCornerRadius="1dp">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical">
<TextView
android:id="@+id/nombre_prestador"
39
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:padding="6dp"
android:background="@drawable/bg_etiqueta_nombre"
android:gravity="center"
android:textAlignment="center"
android:text="@string/nombre"
android:textColor="@color/primaryTextColor"
android:textSize="20sp" />
<TextView
android:id="@+id/txt_descripcion"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="10dp"
android:layout_marginBottom="10dp"
android:paddingStart="10dp"
android:paddingEnd="10dp"
android:textAlignment="textStart"
android:textSize="16sp" />
<View
android:id="@+id/div_descripcion"
android:layout_width="match_parent"
android:layout_height="1dp"
android:background="?android:attr/listDivider" />
<RatingBar
android:id="@+id/rb_calificacion"
style="@android:style/Widget.Material.Light.RatingBar.Indicator"
android:layout_gravity="center"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="5dp"
android:layout_marginBottom="5dp"
android:isIndicator="true"
android:numStars="5"
android:stepSize="10"
android:theme="@style/RatingBar.Yellow" />
<LinearLayout
40
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_marginTop="5dp"
android:layout_marginBottom="10dp"
android:gravity="center_horizontal"
android:orientation="horizontal"
android:paddingStart="50dp"
android:paddingTop="5dp"
android:paddingEnd="50dp"
android:paddingBottom="5dp">
<ImageButton
android:id="@+id/btn_llamar"
android:layout_width="50dp"
android:layout_height="50dp"
android:background="@drawable/btn_bordes_redondeados_verde"
android:contentDescription="@string/todo"
app:srcCompat="@drawable/ic_phone_white" />
<Space
android:id="@+id/espacio_contactar"
android:layout_width="20dp"
android:layout_height="wrap_content"
/>
<ImageButton
android:id="@+id/btn_whatsapp"
android:layout_width="50dp"
android:layout_height="50dp"
android:background="@drawable/btn_bordes_redondeados_verde"
android:contentDescription="@string/todo"
android:cropToPadding="false"
app:srcCompat="@drawable/ic_whatsapp"/>
</LinearLayout>
</LinearLayout>
</androidx.cardview.widget.CardView>
</RelativeLayout>
<View
41
android:id="@+id/div_habilidades"
android:layout_width="match_parent"
android:layout_height="1dp"
android:background="?android:attr/listDivider"
android:visibility="gone"/>
<TextView
android:id="@+id/titulo_habilidades"
style="@style/etiqueta_titulo"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal"
android:layout_marginTop="10dp"
android:layout_marginBottom="10dp"
android:text="@string/habilidades" />
<TextView
android:id="@+id/txt_habilidades"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="10dp"
android:layout_marginBottom="10dp"
android:paddingStart="10dp"
android:paddingEnd="10dp"
android:textSize="16sp" />
<View
android:id="@+id/div_formacion"
android:layout_width="match_parent"
android:layout_height="1dp"
android:layout_marginTop="5dp"
android:layout_marginBottom="5dp"
android:background="?android:attr/listDivider" />
<TextView
android:id="@+id/titulo_formacion"
style="@style/etiqueta_titulo"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal"
android:layout_marginTop="10dp"
42
android:layout_marginBottom="10dp"
android:text="@string/formacion" />
<TextView
android:id="@+id/txt_formacion"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="10dp"
android:layout_marginBottom="10dp"
android:paddingStart="10dp"
android:paddingEnd="10dp"
android:textSize="16sp" />
<View
android:id="@+id/div_ubicacion"
android:layout_width="wrap_content"
android:layout_height="1dp"
android:layout_marginTop="10dp"
android:layout_marginBottom="10dp"
android:background="?android:attr/listDivider" />
<TextView
android:id="@+id/titulo_ubicacion"
style="@style/etiqueta_titulo"
android:layout_gravity="center_horizontal"
android:layout_marginTop="10dp"
android:layout_marginBottom="10dp"
android:text="@string/titulo_ubicacion_local" />
<androidx.cardview.widget.CardView
android:layout_height="match_parent"
android:layout_width="match_parent"
android:focusable="true"
android:foreground="?selectableItemBackground"
app:cardElevation="0dp"
app:cardCornerRadius="5dp"
android:layout_marginStart="5dp"
android:layout_marginTop="5dp"
android:layout_marginEnd="5dp">
<fragment
43
android:id="@+id/map"
android:name="com.google.android.gms.maps.SupportMapFragment"
android:layout_width="match_parent"
android:layout_height="210dp"
android:layout_gravity="center_horizontal"
tools:context="com.alfasolucionesti.chamby.Detalles_Servicio.Activity_Detalles
_Servicio" />
</androidx.cardview.widget.CardView>
<View
android:id="@+id/div_formas_pago"
android:layout_width="wrap_content"
android:layout_height="1dp"
android:layout_marginTop="5dp"
android:layout_marginBottom="5dp"
android:background="?android:attr/listDivider" />
<TextView
android:id="@+id/titulo_formas"
style="@style/etiqueta_titulo"
android:layout_gravity="center_horizontal"
android:layout_marginTop="10dp"
android:layout_marginBottom="10dp"
android:gravity="center_horizontal"
android:text="@string/titulo_formas_pago" />
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_gravity="center_horizontal"
android:layout_marginStart="50dp"
android:layout_marginTop="10dp"
android:layout_marginEnd="50dp"
android:foregroundGravity="center_horizontal"
android:gravity="center_horizontal"
android:orientation="horizontal">
<ImageView
android:id="@+id/img_tarjeta"
android:layout_width="100dp"
android:layout_height="50dp"
android:contentDescription="@string/todo"
44
android:src="@drawable/img_tarjeta" />
<Space
android:id="@+id/espacio_pagos"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1" />
<ImageView
android:id="@+id/img_efectivo"
android:layout_width="100dp"
android:layout_height="50dp"
android:contentDescription="@string/todo"
android:src="@drawable/img_efectivo"
/>
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_gravity="center_horizontal"
android:layout_marginStart="50dp"
android:layout_marginTop="5dp"
android:layout_marginEnd="50dp"
android:layout_marginBottom="10dp"
android:foregroundGravity="center_horizontal"
android:gravity="center_horizontal"
android:orientation="horizontal">
<TextView
android:id="@+id/txt_tarjeta"
android:layout_width="100dp"
android:layout_height="wrap_content"
android:gravity="center_horizontal"
android:text="@string/txt_tarjeta" />
<Space
android:id="@+id/espacio_txt_pagos"
android:layout_width="0dp"
android:layout_height="wrap_content"
45
android:layout_weight="1" />
<TextView
android:id="@+id/txt_efectivo"
android:layout_width="100dp"
android:layout_height="wrap_content"
android:layout_marginBottom="5dp"
android:gravity="center_horizontal"
android:text="@string/txt_efectivo" />
</LinearLayout>
<View
android:id="@+id/div_galeria"
android:layout_width="wrap_content"
android:layout_height="1dp"
android:layout_marginTop="5dp"
android:layout_marginBottom="5dp"
android:background="?android:attr/listDivider" />
<TextView
android:id="@+id/titulo_galeria"
style="@style/etiqueta_titulo"
android:layout_gravity="center_horizontal"
android:layout_marginTop="10dp"
android:layout_marginBottom="10dp"
android:text="@string/titulo_galeria" />
<androidx.cardview.widget.CardView
android:id="@+id/item_categoria"
android:layout_height="wrap_content"
android:layout_width="wrap_content"
android:layout_gravity="center_horizontal"
android:foreground="?selectableItemBackground"
android:layout_margin="2dp"
app:cardElevation="10dp"
app:cardCornerRadius="15dp"
>
<ImageView
android:id="@+id/imagen_galeria"
android:layout_width="260dp"
46
android:layout_height="260dp"
android:contentDescription="@string/todo"
tools:srcCompat="@tools:sample/avatars" />
</androidx.cardview.widget.CardView>
<androidx.recyclerview.widget.RecyclerView
android:id="@+id/recyclerView"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal"
android:layout_marginTop="10dp"
android:layout_marginBottom="10dp"
android:isScrollContainer="false"
android:paddingStart="5dp"
android:paddingEnd="5dp"
android:scrollbarAlwaysDrawHorizontalTrack="false"
android:scrollbars="horizontal">
</androidx.recyclerview.widget.RecyclerView>
<View
android:id="@+id/div_coment"
android:layout_width="wrap_content"
android:layout_height="1dp"
android:layout_marginTop="5dp"
android:layout_marginBottom="5dp"
android:background="?android:attr/listDivider" />
<TextView
android:id="@+id/titulo_coment"
style="@style/etiqueta_titulo"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal"
android:layout_marginTop="10dp"
android:layout_marginBottom="10dp"
android:text="@string/titulo_cal_com" />
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
47
android:layout_gravity="center_horizontal"
android:layout_marginTop="5dp"
android:layout_marginBottom="5dp"
android:gravity="center_horizontal"
android:orientation="horizontal"
android:paddingStart="5dp"
android:paddingEnd="5dp">
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="vertical">
<TextView
android:id="@+id/calificacion_total"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal"
android:text="@string/calificacion"
android:textSize="45sp" />
<RatingBar
android:id="@+id/ratingBar2"
style="@style/Widget.AppCompat.RatingBar.Indicator"
android:layout_width="wrap_content"
android:layout_height="36dp"
android:numStars="5"
android:stepSize="10"
android:theme="@style/RatingBar.Yellow" />
<TextView
android:id="@+id/textView4"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal"
android:visibility="gone" />
</LinearLayout>
</LinearLayout>
<LinearLayout
48
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_marginTop="10dp"
android:layout_marginBottom="10dp"
android:orientation="horizontal">
<TextView
android:id="@+id/txt_indicador_coment"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:paddingStart="15dp"
android:paddingEnd="15dp"
android:textSize="16sp" />
<TextView
android:id="@+id/txt_cantidad_comentarios"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:textSize="16sp" />
</LinearLayout>
<androidx.recyclerview.widget.RecyclerView
android:id="@+id/rvComentarios"
android:layout_width="wrap_content"
android:layout_height="0dp"
android:layout_gravity="center_horizontal"
android:layout_marginTop="5dp"
android:layout_marginBottom="5dp"
android:layout_weight="1"
android:isScrollContainer="false"
android:paddingStart="5dp"
android:paddingTop="5dp"
android:paddingEnd="5dp"
tools:itemCount="3" />
<Button
android:id="@+id/btn_todos_comentarios"
style="@style/Widget.AppCompat.Button.Borderless"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
49
android:layout_gravity="end"
android:layout_marginTop="5dp"
android:layout_marginEnd="5dp"
android:layout_marginRight="5dp"
android:background="@drawable/boton_blanco"
android:onClick="onClickMostrarTodos"
android:text="@string/ver_todos_coment"
android:textAllCaps="false"
android:textColor="@color/primaryColor"
android:textSize="14sp" />
</LinearLayout>
</ScrollView>
</androidx.constraintlayout.widget.ConstraintLayout>
</LinearLayout>
50