Activity og GUI Android Brugergrænseflade
-
Upload
iona-abbott -
Category
Documents
-
view
33 -
download
0
description
Transcript of Activity og GUI Android Brugergrænseflade
2 | 2010
Android Application Class
Svarer ”nogenlunde” til J2ME Midlet “Base class for those who need to maintain global application state.
You can provide your own implementation by specifying its name in your AndroidManifest.xml's <application> tag, which will cause that class to be instantiated for you when the process for your application/package is created.”
Kan håndterer onCreate, onTerminate, onLowMemory og onConfigurationChanged events
Eksempel Application class
3 | 2010
// ** The Application Class *************************************** //
// *******************************************************************// ** Listing 3-7: Skeleton application class
// Appliction Class Extenstion
import android.app.Application;import android.content.res.Configuration;
public class MyApplication extends Application { private static MyApplication singleton; // Returns the application instance public static MyApplication getInstance() { return singleton; } @Override public final void onCreate() { super.onCreate(); singleton = this; }}
// Manifest entry<application android:icon="@drawable/icon" android:name="MyApplication"> [... Manifest nodes ...]</application>
4 | 2010
Android Activity Class (Android Activities)
Brugergrænseflade og brugeraktioner er en aktivitet// ** The Activity Class ****************************************** //
// ** Listing 3-9: Activity skeleton codepackage com.paad.myapplication;
import android.app.Activity;import android.os.Bundle;
public class MyActivity extends Activity {
/** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); }}
// ** Listing 3-10: Activity layout in XML<activity android:label="@string/app_name" android:name=".MyActivity"></activity>
5 | 2010
Activity bruger View og Layout til UI og interaktion med brugeren
• Activity og Form svarer til hinanden: Præsentere et skærmbillede 1:1• Activity bruger Views Layout og Widgets/Controls (Standard eller egne)• Der findes en sæt af specielt designede Activities i forhold til standard
widgets• MapActivty, List Activty, ExpandableListActivty og TabActivity
• Tilstand styret af Android Framework.• Mange Activities i en applikation kan give behov for eget Application objekt.
“This hierarchy tree can be as simple or complex as you need it to be, and you can build it up using Android's set of predefined widgets and layouts, or with custom Views that you create yourself”.
Screen Layout
7 | 2010
Activity ->Layout-> View -> Widget &| ->UI Control
View er adgangen til skærmressourcen på enheden
Layout er manageren, der kontrollere View opsætningen
Widget er en kontrol i View, og som ligner den rigtige verdens ting. Et ur eller et kompas. Kan også være et View
UI control er grafiske enheder som knapper eller ”gestures”
// ** Listing 4-1: Inflating an Activity layout@Overridepublic void onCreate(Bundle icicle) { super.onCreate(icicle);
setContentView(R.layout.main); TextView myTextView = (TextView)findViewById(R.id.myTextView);}
// ** Listing 4-2: Creating a UI layout in code@Overridepublic void onCreate(Bundle icicle) { super.onCreate(icicle);
TextView myTextView = new TextView(this); setContentView(myTextView);
myTextView.setText("Hello, Android");}
8 | 2010
Klassediagram Et eksempel Fra http://www.droidnova.com/playing-with-graphics-in-android-part-i,147.html
9 | 2010
Layout hvordan XML og kode
// ** Listing 4-3: Simple Linear Layout in XML
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent">
<TextView
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="Enter Text Below"
/>
<EditText
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="Text Goes Here!"
/>
</LinearLayout>
// ** Listing 4-4: Simple LinearLayout in code
LinearLayout ll = new LinearLayout(this);
ll.setOrientation(LinearLayout.VERTICAL);
TextView myTextView = new TextView(this);
EditText myEditText = new EditText(this);
myTextView.setText("Enter Text Below");
myEditText.setText("Text Goes Here!");
int lHeight = LinearLayout.LayoutParams.FILL_PARENT;
int lWidth = LinearLayout.LayoutParams.WRAP_CONTENT;
ll.addView(myTextView, new LinearLayout.LayoutParams(lHeight, lWidth));
ll.addView(myEditText, new LinearLayout.LayoutParams(lHeight, lWidth));
setContentView(ll);
10 | 2010
Hvad er der så at holde styr på i GUI’en?http://developer.android.com/guide/topics/ui/index.html
View http://developer.android.com/reference/android/view/View.html
ViewGroup http://developer.android.com/reference/android/view/ViewGroup.html
Layout http://developer.android.com/reference/android/widget/LinearLayout.html
Widget Package http://developer.android.com/reference/android/widget/package-summary.html
Menu http://developer.android.com/guide/topics/ui/menus.html (Menu knappen)
UI Events Define an event listener and register it with the View
Override an existing callback method for the View (Custom Views)
Menu Events
11 | 2010
Event Listnershttp://tseng-blog.nge-web.net/blog/2009/02/14/implementing-listeners-in-your-android-java-application/
1. Inline Classe Implementation 2. Bruge “Implements” metoden 3. Bruge en variabel til en listner metode 4. XML attribute android:onClick="click1"