Skip to content

Instantly share code, notes, and snippets.

@GameCore
GameCore / Conexion.java
Created September 26, 2015 21:39
Una conexion una base de datos a mysql desde java usando MVC (Modelo)
/*
* To change this license header, choose License Headers in Project Properties.
* To change this template file, choose Tools | Templates
* and open the template in the editor.
*/
package LoginMVC.modelo;
import java.sql.DriverManager;
import java.sql.SQLException;
@GameCore
GameCore / Como queremos es que la estructura del primer diseño se adjunte al ViewGroup del segundo diseño (algo parecido a lo que se hacía con las Views Merge e Include, pero en dinámico, desde Java)
Created September 13, 2015 08:43
Una cosa que hay que tener muy clara del método inflate(), que pertenece al objeto de la clase LayoutInflater, es –lo que lleva demasiado a confusión- que inflar no se refiere a insertar unas Views en un ViewGroup, sino a poner los atributos de diseño del que podría ser el ViewGroup padre. Aquí seguramente surja la duda ¿Pero si cuando inflo se …
public class MainActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.fichero_de_disenio);
RelativeLayout contenedor = (RelativeLayout) findViewById(R.id.RelativeLayout_contenedor);
LayoutInflater inflater = LayoutInflater.from(this);
View laViewInflada = inflater.inflate(R.layout.adjuntar_en_un_viewgroup, contenedor, true);
}
}
@GameCore
GameCore / ¿Se asocia igual en un Fragmen en Java?
Created September 13, 2015 08:38
En Fragment siempre se hace en el método onCreateView() del ciclo de vida del Fragment (Recuerdo que éstas clases heredan de Fragment). Se asocia el fichero del diseño XML con el método inflate() del objeto LayoutInflater. Ojo a las diferencias respecto a cómo se asocia un diseño en una Activity y como se asocia en un Fragment. El inflate() no d…
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,Bundle savedInstanceState) {
View rootView = inflater.inflate(R.layout.fragment_main, container, false);
return rootView;
}
@GameCore
GameCore / <RequestFocus>
Created September 13, 2015 08:28
Con el nombre de la <RequestFocus/>. Se escribe con etiquetas vacías <empty-tag/> dentro de la View que <EditText queramos que tenga el foco. Solo se pude haber uno de estos por fichero de diseño. Ya que solo un elemento puede tener el foco a la vez, y en el estado de inicio –que es como se declara en el diseñador gráfico- solo se le puede asign…
<EditText
android:id="@+id/editText1"
android:layout_width="188dp"
android:layout_height="wrap_content"
android:ems="10" >
<requestFocus />
</EditText>
<EditText
android:id="@+id/editText2"
android:layout_width="188dp"
@GameCore
GameCore / <include>
Created September 13, 2015 08:26
Con el nombre <include/>. El fichero se declara en el atributo “layout” buscándolo con: @layout/nombre_fichero_layout (si ponemos la View de include desde la “Palette” el asistente nos pondrá los atributos necesarios, nosotros solo tendremos que elegir el fichero que queremos cargar dentro del include)
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:gravity="center|top"
android:orientation="vertical" >
<Button
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="@string/guardar" />
@GameCore
GameCore / <merge>
Created September 13, 2015 08:22
Muy útil cuando el diseño de un fichero vaya a ser incluido mediante un <include> (ver Include) en otro fichero de diseño, y este fichero no quiera abusar de profundidad de un ViewGroup que no le vaya a servir de nada
<merge xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_gravity="center" >
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:gravity="center" >
<CheckBox
android:layout_width="wrap_content"
@GameCore
GameCore / xmlns:tools
Created September 13, 2015 08:21
En los diseños XML, en espacio de nombres reservado “tools” únicamente sirve para guardar información que no afectará a las vistas de diseño del usuario, sino están destinadas a facilitar la vida a los diseñadores de los ficheros de diseño XML. Además, esta información de la etiqueta “tools” no será empaquetado a la hora de ejecutar la aplicació…
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context="com.jarroba.miapp.MainActivity" >
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Una texto que debería Lint marcar como Hardcoded, pero no se
marca por usar tools:ignore con HardcodedText"
@GameCore
GameCore / tools:ignore
Created September 13, 2015 08:20
Para que Lint ignore alguna comprobación. Por ejemplo el valor HardcodedText, que se usa para evitar que Lint nos recuerde con un Warning (en Eclipse subrayado de amarillo) los textos que introduzcamos directamente y no en el fichero “strings.xml”
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Una texto que debería Lint marcar como Hardcoded, pero no se marca
por usar tools:ignore con HardcodedText"
tools:ignore="HardcodedText"
/>
@GameCore
GameCore / tools:targetApi
Created September 13, 2015 08:19
Para indicar a partir de cual nivel del API se utilizará la View. Por ejemplo GridLayout, no funcionaría en versiones anteriores a la 14. Simplemente es un recordatorio para saber que versión de Android es la mínima que soporta.
<GridLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:targetApi="ICE_CREAM_SANDWICH" >
</GridLayout>
@GameCore
GameCore / tools:context
Created September 13, 2015 08:18
Se pone en la View raíz del fichero de diseño XML, para recordar que Activity la asociará. De este modo el editor de diseños podrá poner el tema de la Activity (el cual estará indicado en el AndroidManifest.xml, donde se asocia con la Activity, no con el fichero de diseño XML) mientras diseñamos nuestra vista (este tema es solo en tiempo de dise…
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".MainActivity" >
</RelativeLayout>