Funktionen einer Activity in mehreren Klassen

  • Antworten:2
  • OffenNicht stickyBentwortet

28.08.2011 17:44:41 via Website

Hallo Forum,

ich beschäftige mich noch nicht lange mit der App-Entwicklung für Android. Daher glaube ich dass meine Frage einfach zu beantworten ist:

In meiner App wird eine Activity aufgerufen, die hinter Buttons, Edit-Boxen usw. verschiedene Funktionalitäten hat.

Da dies mittlerweile sehr umfangreich ist, möchte ich einzelne Bereiche in eigene Klassen auslagern. Leider funktioniert meine Herangehensweise nicht.

Hier ein verkürztes Bsp.:

1public class Prj_tourDiaryActivity extends Activity
2{
3 @Override
4 public void onCreate(Bundle savedInstanceState)
5 {
6 super.onCreate(savedInstanceState);
7 setContentView(R.layout.main);
8
9 //bisheriger Funktionsaufruf in der gleichen Klasse
10 funktionalitaet_DatePicker();
11
12 //Funktionsaufruf in einer eigenen Klasse
13 Gps gps = new Gps();
14 gps.funktionalitaet_GPSPicker();
15
16 }
17}
18public class Gps extends Activity
19{
20
21 public void funktionalitaet_GPSPicker()
22 {
23 cmdGps = (Button) findViewById(R.id.cmdGps);
24
25 }
26}

Die Klasse GPS soll ja keine Activity sein, allerdings bekomme ich ohne das extends Activity keinen Zugriff auf die View-Elemente. Geht das was ich vorhabe überhaupt und wenn ja wie?

Vielen Dank schon mal für jede Hilfe.

Gruß

michibr

28.08.2011 18:26:53 via Website

natürlich sollte GPS nicht Activity erweitern, da hast du schonmal recht, das muss also mal weg.


Du kannst ja einfach die benötigten Member deiner Klasse mitgeben.

class GPS
Button bt;


setButton (Button b)
bt = b;


usw

swordiApps Blog - Website

28.08.2011 21:45:16 via Website

Danke für deine Hilfe.

Ich hatte es zwischenzeitlich so gelöst, dass ich nur die activity an die Klasse übergeben habe und darüber alle Steuerelemente aus dem Layout geholt habe.

Für eine saubere Kapselung ist deine Lösung aber besser.

Danke!