Oldalak

2012. december 1., szombat

MultiActivity demo

Ez a leírás azt a példát mutatja be, hogyan kell több Activity komponenst létrehozni illetve azokat elindítani illetve a log üzenetekből látható, hogy az egyes Activity komponensek "életciklus" eseményei hogyan keletkeznek.

Első Activity XML forrása:


    

A második és harmadik Activity UI felületét leíró XML-t az alábbi módon lehet létrehozni:
A Project Explorer-ben a res->layout könyvtáron kell egy jobb egér gombot nyomni, erre az alábbi menü jelenik meg. Itt a File menüt kell kiválasztani.

A menü kiválasztása után az alábbi dialódus ablak jelenik meg:

Ezt a műveletet annyiszor kell megismételni, ahány Activity komponenst szeretnénk létrehozni.

Második Activity XML forrása:


    

Harmadik Activity XML forrása:


    


A következő lépésben létre kell hozni az Activity layout-okhoz a kezelő osztályokat:
Ezt a Project Explorer-ben az src-> package könyvtáron kell egy jobb egér gombot nyomni, és itt a New Class menüt kell választani az alábbiak szerint:

A menüpont kiválasztása után az alábbi párbeszéd ablak jelenik meg:

A Name textbox-ba kell megadni az új osztály nevét. A befejezés után egy üres osztály deklarációt kapunk, aminek a kódját kiegészíthetjük úgy mint ahogy a MainActiviy osztályt létrehozta az Eclipse.

A MainActivity osztály definíciója:

package hu.globomax.multiactivity;

import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.util.Log;
import android.view.View;

public class MainActivity extends Activity {

 @Override
 protected void onCreate(Bundle savedInstanceState) {
  super.onCreate(savedInstanceState);
  setContentView(R.layout.activity_main);
  Log.d("TEST", "MainActivity onCreate");
 }

 public void onClick(View v) {
  if (v.getId() == R.id.btnStartSecond) {
   Intent i = new Intent();
   i.setClass(this, SecondActivity.class);
   startActivity(i);
  }
 }

 @Override
 protected void onDestroy() {
  Log.d("TEST", "MainActivity onDestroy");
  super.onDestroy();
 }

 @Override
 protected void onPause() {
  Log.d("TEST", "MainActivity onPause");
  super.onPause();
 }

 @Override
 protected void onRestart() {
  Log.d("TEST", "MainActivity onRestart");
  super.onRestart();
 }

 @Override
 protected void onStart() {
  Log.d("TEST", "MainActivity onStart");
  super.onStart();
 }

 @Override
 protected void onStop() {
  Log.d("TEST", "MainActivity onStop");
  super.onStop();
 }

 @Override
 protected void onResume() {
  Log.d("TEST", "MainActivity onResume");
  super.onResume();
 }
}

A Második Activity osztály definíciója:

package hu.globomax.multiactivity;

import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.app.Activity;
import android.content.Intent;

public class SecondActivity extends Activity {

 @Override
 protected void onCreate(Bundle savedInstanceState) {
  super.onCreate(savedInstanceState);
  setContentView(R.layout.sec);
  Log.d("TEST", "SecondActivity onCreate");
 }

 public void onClick(View v) {
  if (v.getId() == R.id.btnBackToFirst) {
   finish();
  } else if (v.getId() == R.id.btnStartThird) {
   Intent i = new Intent();
   i.setClass(this, ThirdActivity.class);
   startActivity(i);
  }
 }
 
 @Override
 protected void onDestroy() {
  Log.d("TEST", "SecondActivity onDestroy");
  super.onDestroy();
 }

 @Override
 protected void onPause() {
  Log.d("TEST", "SecondActivity onPause");
  super.onPause();
 }

 @Override
 protected void onRestart() {
  Log.d("TEST", "SecondActivity onRestart");
  super.onRestart();
 }

 @Override
 protected void onStart() {
  Log.d("TEST", "SecondActivity onStart");
  super.onStart();
 }

 @Override
 protected void onStop() {
  Log.d("TEST", "SecondActivity onStop");
  super.onStop();
 }
 
 @Override
 protected void onResume() {
  Log.d("TEST", "SecondActivity onResume");
  super.onResume();
 }
}

A Harmadik Activity osztály definíciója:

package hu.globomax.multiactivity;

import android.app.Activity;
import android.os.Bundle;
import android.util.Log;
import android.view.View;

public class ThirdActivity extends Activity {

 @Override
 protected void onCreate(Bundle savedInstanceState) {
  super.onCreate(savedInstanceState);
  setContentView(R.layout.third);
  Log.d("TEST", "ThirdActivity onCreate");
 }
 
 public void onClick(View v) {
  if (v.getId() == R.id.btnBackToSecound) {
   finish();
  }
 }
 
 @Override
 protected void onDestroy() {
  Log.d("TEST", "ThirdActivity onDestroy");
  super.onDestroy();
 }

 @Override
 protected void onPause() {
  Log.d("TEST", "ThirdActivity onPause");
  super.onPause();
 }

 @Override
 protected void onRestart() {
  Log.d("TEST", "ThirdActivity onRestart");
  super.onRestart();
 }

 @Override
 protected void onStart() {
  Log.d("TEST", "ThirdActivity onStart");
  super.onStart();
 }

 @Override
 protected void onStop() {
  Log.d("TEST", "ThirdActivity onStop");
  super.onStop();
 }
 
 @Override
 protected void onResume() {
  Log.d("TEST", "ThirdActivity onResume");
  super.onResume();
 }
}

Ezek után a projekt manifest állományában a második és harmadik Activity komponenseket is deklarálni kell.




    

    
        
            
                

                
            
        
        
        
        
        
    



Nincsenek megjegyzések:

Megjegyzés küldése