Hola y bienvenido a smarthome-blogger.de. En el video de hoy, la pantalla de configuración
creó la aplicación, que también contiene información al sistema se muestran. Primero abres el archivo "fragment_settings.xml"
y crea un nuevo archivo de diseño llamado "elemento_de_valor",
que tiene un diseño de marco como su elemento principal. Primero, el diseño de la pantalla de configuración.
procesado.
Para hacer esto, el TextView de la vista eliminada.
Luego, los atributos se agregan al diseño del marco. "id" y "fondo" con los valores "@+id/frame"
y agregó "@color/layoutBackground". Un recicladorVer
insertado, que tiene "settings_list" como ID y sus atributos "layout_width" y "layout_height"
se establecen en "match_parent". El siguiente elemento es una etiqueta de inclusión,
con el que se integran otros diseños ser capaz.
Establezca el atributo de diseño en "@layout/loading_animation",
"visibilidad" a "ido" y la identificación a "@+id/loading_animation". Luego crea un nuevo archivo de diseño
y asígnele el nombre "loading_animation". Un diseño relativo
asignado. En el RelativeLayout agregas ahora una barra de progreso,
cuyo alto y ancho estableces en "150dp". Al establecer el atributo "indeterminado" en
establecer verdadero hace que el ProgressBar gira sin cesar.
Para centrarlos, luego establece el atributo "layout_centerInParent" a "verdadero". Ahora cierre los archivos "loading_animation.xml"
y "fragment_settings.xml" y editar el archivo "value_item.xml".
Primero agrega el FrameLayout agregue un relleno de "5dp". Luego agregue un CardView al FrameLayout
una. Esto tiene el ancho "match_parent" y la altura "wrap_content".
El ID de CardView es "contenedor".
Con el Atributo "cardElevation" establecido en "@color/cardViewElevation"
Está establecido, la vista se destaca ligeramente del fondo
fuera. Luego establezca el atributo "cardUseCompatPadding"
a la verdad En CardView ahora hay un RelativeLayout
con altura "match_parent" y ancho "@dimen/recyclerItemHeight" creado.
Dentro de este RelativeLayout, un LinearLayout con alto y ancho "match_parent"
creado. Establece la orientación en "vertical", el atributo "margen" a "3dp" y el atributo
"layout_centerInParent" a "verdadero". El Diseño Lineal luego agrega un ImageView.
Esto tiene el ancho "wrap_content" y el Altura "match_parent". El ID es "icono", el
La gravedad "centro" y el peso "2". El siguiente es un TextView con la altura
"match_parent" y el ancho "wrap_content" agregado.
Establece "textAppearance" en "textAppearanceLarge", la identificación a "nombre", el color del texto a "textColorDark".
El atributo "layout_gravity" se establece en "center" y atribuye "gravedad" a "center_vertical|center_horizontal"
colocar.
También agregue el peso al diseño.
"3" añadido. Ahora puede copiar este TextView y
pega abajo. Cuando copia conjuntos pero establece el atributo ID en "valor". Ahora ve al archivo SettingsFragment.java.
Aquí primero agregas algunas variables para el diseño de la clase, el RecyclerView
agregue el adaptador y la lista. Luego creas en la parte inferior
clase otra clase llamada "SettingItem". La clase tiene los atributos de cadena "nombre",
"tipo", "valor" y un OnClickListener "ocl". el constructor
recibe un valor para cada atributo y inicializarlo con él.
Además, la clase tiene un atributo para cada un método getter correspondiente. En el método onCreate(), el retorno
la llamada inflater.inflate() a la variable asignado a "settingsView",
que luego se devuelve al final del método voluntad.
Entre la inicialización y la devolución del
Las variables se convierten en RecyclerView y LayoutManager inicializado y el administrador de diseño de RecyclerView
agregado. Además, ArrayList se actualiza con un nuevo
ArrayList inicializado y luego se llama al método loadSystemInfo(). Dado que este método aún no existe,
ahora implementado. Crea uno para esto nuevo método llamado loadSystemInfo(). El primer paso en el método es la animación de carga.
hecho visible. esto pasa con la llamada setVisibility(Ver.VISIBLE).
A continuación, un mapa llamado "requestData"
crea y tú los parámetros para la solicitud del servidor agregado. Después de eso, el método sendRequest() del
Class HTTPRequest llamó y usted la Parámetros getContext(), requestData,
SaveData.getServerIp(getContext()) y un Pase la implementación de HTTPRequestCallback. En el método onError(), el primero es el
Se eliminó la animación de carga. Después de eso, un mensaje de error con el retorno
emitido. Dado que el método error_message() aún no está
existe, ahora debe ser implementado. Recibe una cadena y como parámetro
crea un snack bar de corta duración que muestra el texto pasado. De vuelta en el método loadSystemInfo()
en onRequestResult() primero la animación de carga vuelto invisible.
Luego se registra la devolución y verificado si la devolución es "datos incorrectos".
Si este es el caso, se muestra un mensaje de error emitido.
Si la devolución es "usuario desconocido", entonces da otro mensaje de error.
De lo contrario, en un bloque de prueba, un nuevo
JSONObject creado y con el retorno del servidor inicializado. Luego un JSONArray con el retorno
de la llamada jsonObj.getJSONArray("systeminfo") inicializado Después de eso, itera a través de JSONArray y
un nuevo elemento de configuración para cada elemento añadido a los valores correspondientes en la lista. Después del bucle habrá un poco más de estática.
Se agregaron elementos de menú. El primer elemento tiene el nombre de "Escenas",
el tipo "escenas", un valor vacío y un OnClickListener,
por el momento solo un mensaje de error con el texto "gestión de escena". El siguiente elemento es un elemento con
el nombre "usuario", el tipo "usuario", un valor vacío y un OnClickListener,
que inicialmente también emite un mensaje de error, agregado. El último elemento tiene el nombre de "Automatización",
el tipo "automatización", un valor vacío y también un OnClickListener,
que inicialmente da un mensaje de error. Finalmente, el atributo "settingsAdapter"
inicializado con un nuevo SettingsAdapter, el adaptador está asignado a RecyclerView
y notificado que existen nuevos elementos están.
Se emite un mensaje de error en el bloque catch,
que hubo un error al cargar la información ha dado. Eso es todo de nuevo con este video. En la siguiente parte del tutorial, se implementa un llamado adaptador, entre otras cosas, quien llena la lista con los datos apropiados y prueba la aplicación. Gracias por mirar y hasta la próxima..