Android Development - Snippets
Aus Wikizone
Neue Activity starten
Z.B. über Button Klick
Du brauchst:
- Neue Activity
- Evtl. neues Layout anlegen
- Neue Java Klasse für Activity anlegen
- Neue Activity im Manifest eintragen
- Button in der Haupt Activity
- onClick Event Handler
- Intent als Verbindung
- Ressourcen wie Strings etc.
Neues Layout für die Activity
Layout Ordner > Rechtsklick > New > Android Layout File > Name in Lowercase(z.b. page_2)
<?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="vertical" >
<TextView
android:id="@+id/textView1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/page2_title"
android:textAppearance="?android:attr/textAppearanceLarge" />
</LinearLayout>
Neue Activity Klasse erzeugen
Package > Rechtsklick > New > Class > Name mit FirstLetterUppercase (z.B. Page2Activity)
- extends Activity
- Activity importieren
- mind. onCreate(bundle) -> am Besten über Rechtsklick > Source > Override
- setcontentView(R.layout.id)
page2Activity.class
package com.example.buttonstartsactivity;
import android.app.Activity;
import android.os.Bundle;
public class Page2Activity extends Activity{
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.page2);
}
}
Manifest Eintrag
// ...
<activity
android:name="com.example.buttonstartsactivity.Page2Activity"
android:label="@string/app_name"
android:exported="false">
<intent-filter>
<action android:name="android.intent.action.PAGE2" />
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
</activity>
// ...
Button in Hauptansicht erstellen
z.B.
main_activtiy.xml
<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" >
<Button
android:id="@+id/button1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentTop="true"
android:layout_centerHorizontal="true"
android:text="@string/button" />
</RelativeLayout>
Button verbinden
MainActivity.java
Variante onClick Event im Layout File
Anstatt der onClick Funktion kann man auch eine Funktion im Layout definieren. Dann kann man in der .java Datei einfach die Funktion implementieren. activity_main.xml
... <Button android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="@string/button" android:onClick="buttonPressed" /> ...
MainActivity.java
/** Called when the user clicks the send button **/
public void buttonPressed(View view) {
Intent intent = new Intent(this, Page2Activity.class);
EditText editText = (EditText) findViewById(R.id.button);
startActivity(intent);
}