Acceder

Ver la Versión Completa : Problema con Activities


4ris
15/08/13, 20:00:34
Buenas chicos, estoy intentando aprender a programar en android, y tengo algún que otro problema, espero que podáis ayudarme.

Os cuento mi problema: Yo he creado este layout por ejemplo(Se llama linear):

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="horizontal" >

<Button
android:id="@+id/button2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Boton"/>

<Button
android:id="@+id/button1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Booton"

</LinearLayout>


Y luego he creado este activity llamado pact, y aquí es donde empiezan los problemas así que pondré entre paréntesis mis dudas:



import com.example.activities.R; (esta línea tengo que ponerla porque el setcontview me da error si la quito, qué hace?
import android.app.Activity; (que importa?)
import android.os.Bundle; (que importa?)

public class pact extends Activity {
public void onCreate (Bundle bundle){ (El onCreate es básico y necesario, pero el Bundle qué es?


super.onCreate(bundle);
setContentView(R.layout.linear); (y aquí llamo a el layout linear ¿no?)


}
}



Si todo esto está bien, que no lo tengo claro luego tendría que ir a AndroidManifest.xml y en la parte application, pulsar add en Aplication nodes ¿no? Pues no me sale. Estoy algo liado, sé que es porque estoy empezando pero me cuesta avanzar con estas dudas.

Un saludo

kriogeN
15/08/13, 20:58:30
En cuanto a la duda final, si el Activity lo has creado desde la opción New Activity del Eclipse, no necesitas hacer nada en el AndroidManifest.xml, porque se añade automáticamente. Si lo que has hecho es crear un fichero Java y hacer que herede de Activity, entonces si necesitas añadir A MANO en el AndroidManifest.xml el <activity ..../> correspondiente dentro de <application ..../>

En cuanto al resto de dudas, si tienes ese tipo de dudas es porque no sabes Java, como siempre digo, primero Java, después Android. Es como intentar ponerte a conducir en ciudad sin haber dado nunca ninguna clase de conducir.

De todas formas te resuelvo tus dudas:

Los import hacen falta porque Java tiene que saber a que paquete pertenecen las clases que estás usando. Si por ejemplo pusieses:

"public class pact extends android.app.Activity" en lugar de "public class pact extends Activity", no necesitarías el "import android.app.Activity", pero entonces por cada tipo Activity que tuviese la clase tendrías que poner el nombre del paquete completo. Por eso para acortar haces el "import" y así sólo tienes que poner el nombre de la clase directamente en lugar de toda su ruta.

"public void onCreate (Bundle bundle)" En este caso (en el onCreate), se usa para recuperar datos guardados en onSaveInstanceState en el caso de que la Activity se haya destruido y se tenga que volver a construir, pero esto ya es Android avanzado.

"setContentView(R.layout.linear)" Lo que hace es colocar en la Activity el contenido que has diseñado en el fichero XML situado en la carpeta res/layout y llamado linear.xml