Home Ostalo Razvoj aplikacija PROGRAMIRANJE: Otvaranje više aktivnosti (Activity)

PROGRAMIRANJE: Otvaranje više aktivnosti (Activity)

programiranje Android aplikacija
Android razvoj aplikacija

Danas ćemo da uradimo još jedana kratak i lagan početnički tutorijal za Android programiranje. Pošto smo krenuli od početka sa osnovim stvarima, veoma je bitno da objasnimo kako da klikom na neki objekat otvorimo drugu aktivnost. To je jedna od osnovnih stvari koja vam je potrebna kada pravite svoju Android aplikaciju. Mi ćemo da klikom na dugme na prvoj aktivnosti da otvorimo drugu aktivnost.

Aktivnost (eng. Activity) je aplikacijska komponenta koja predstavlja “ekran” preko koga korisnik može da vrši interakciju sa aplikacijom. Detaljnije o tome imate ovde.

XML Layouts

Potrebno je da napravimo dva XML layouta koji nam predstavljaju grafički prikaz naše Android aplikacije:

  • res/layout/activity_prva.xml
  • res/layout/activity_druga.xml

Sadržaj activity_prva.xml fajla:

[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"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
tools:context=".PrvaActivity" >

<Button
android:id="@+id/button1"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_alignParentTop="true"
android:text="Klikni da otvoris drugu aktivnost" />

</RelativeLayout>
<pre>[/xml]

Sadržaj activity_druga.xml fajla koji predstavlja izgled druge aktivnosti, gdje ispisujemo samo kratku poruku.

[xml]
<?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="Ja sam druga aktivnost (activity_druga.xml)."
android:textAppearance="?android:attr/textAppearanceLarge" />

</LinearLayout>
[/xml]

Aktivnosti (eng. Activity)

Logično, kad smo napravili dva izgleda, potrebno je da napravimo 2 klase, tj. aktivnosti koje će da budu povezani sa tim izgledom.

Potrebno je da napravimo 2 aktivnosti:

  1. PrvaActivity.java -> activity_prva.xml
  2. DrugaActivity.java -> activity_druga.xml

Ispod se nalazi kod za prvu aktivnost, u kojoj se nalazi samo jedno dugme, i gdje klikom na njega otvaramo novu aktivnost. Kod je prilično jednostavan, definiše se samo dugme (eng. button) i osluškuvač događaja za klik (eng. click listener), koji prati da li je kliknuto na to dugme, i ako jeste pokreće tu drugu aktivnost.

Kod za PrvaActivity.java:

[java]
package com.example.activityprimjer;

import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.Menu;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;

public class PrvaActivity extends Activity {

private Button btnClick;

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_prva);

btnClick = (Button) findViewById(R.id.button1);

btnClick.setOnClickListener(new OnClickListener() {

@Override
public void onClick(View arg0) {
//Klikom na dugme otvori drugu aktivnost…
Intent i = new Intent(PrvaActivity.this, DrugaActivity.class);
startActivity(i);

}
});
}

@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.main, menu);
return true;
}

}
[/java]

Kod za drugu aktivnost DrugaActivity.java:

[java]
package com.example.activityprimjer;

import android.os.Bundle;
import android.app.Activity;
import android.view.Menu;

public class DrugaActivity extends Activity {

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_druga);
}

@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.main, menu);
return true;
}

}
[/java]

AndroidManifest.xml

Svaka aplikacija mora da ima AndroidManifest.xml koji u sebi sadrži esencijalne informacije vezane za Android aplikaciju. U sebi ovaj xml fajl sadrži mnoge bitne informacije, kao što su Java paketi, aktivnosti, servisi, permisije koje su potrebne za aplikaciju i mnoge druge bitne stvari.

U našem slučaju potrebno je samo da dodamo obje aktivnosti i to izgleda kao u kod ispod:

[xml]
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.example.activityprimjer"
android:versionCode="1"
android:versionName="1.0" >

<uses-sdk
android:minSdkVersion="10"
android:targetSdkVersion="10" />

<application
android:allowBackup="true"
android:icon="@drawable/ic_launcher"
android:label="@string/app_name"
android:theme="@style/AppTheme" >
<activity
android:name="com.example.activityprimjer.PrvaActivity"
android:label="@string/app_name" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />

<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity
android:name="com.example.activityprimjer.DrugaActivity">

</activity>
</application>

</manifest>
[/xml]

Zaključak

Kao što ste vidjeli iz koda, ako imate bilo kakvog prethodnog predznanja, ovo je prilično jednostavno i vrijeme je da pokrenemo aplikaciju i da vidimo kako izgleda i šta se dešava.

Prva aktivnost
Prva aktivnost
Druga aktivnost
Druga aktivnost

KOMENTARI: Ako imate kakvih pitanja ili nejasnoća, savjeta slobodno se javite u komentarima.

Pretplatite se za uputstva za programiranje Android aplikacija