2011-01-15 10 views
2

Ich denke an mit Android-Entwicklung zu beginnen.Android Äquivalent von IBActions und IBOutlets

Was sind die Äquivalente von IBActions und IBOutlets in Android?

Ist es so einfach wie der Interface Builder, Verbindungen mit Code einzurichten?

Ist es schnell, die Grundlagen der Android-Entwicklung zu lernen, wenn man Java kennt?

Antwort

0

Zu Ihrer letzten Frage würde ich "ja" antworten.

Sie verdrahten immer noch die Schnittstelle zu Ihrem Code, aber zur Zeit tun Sie dies programmgesteuert und im Handumdrehen: Nach dem Anzeigen einer ID von oder etwas in Ihrer XML - Layoutdatei rufen Sie dann in Ihrem Code und nach dem Layout wurde erstellt, View myButton = findViewById(R.layout.myButton). Letzteres ist das Äquivalent von IBOutlet und Verkabelung in IB mit Ausnahme der Verbindung erfolgt, wenn Sie es brauchen. (Sie können auch diese für das iPhone programmatisch tun, wenn man wollte.)

Das Äquivalent eines IBAction ist onClickListener zu verwenden, erklärt myButton.setOnClickListener(this); und dass this implementiert View.OnClickListener. Sie überschreiben dann public void onClick(View v) und verwenden einen Schalter auf v.id.

In der Praxis ist das alles nicht so schlimm wie ich es gemacht habe. Der größte Schmerz bei der Entwicklung von Android für mich ist die Skalierung der Ansichten für verschiedene Geräte.

Wenn Sie dies verstehen und Absichten, ist der Rest ziemlich einfach Java.

+0

"Der größte Schmerz bei der Entwicklung für Android, dass ich begegne, ist die Skalierung der Ansichten für verschiedene Geräte." - Das klingt wie ein großer Schmerz. – jarryd

+0

@alJaree: Ein zweiter großer Schmerz, mit dem ich mich arrangiere, ist die Beschränkung der Dateigrößen in der APK. Dateien, die größer als 1 MB unkomprimiert sind, werden nicht gelesen, und es ist ein Fehler, sie in bestimmte Ordner (z. B. "Assets") zu verschieben. Keine solchen Sorgen auf dem iPhone, wo große SQLite-Datenbanken immer sehr willkommen sind. – SK9

+0

Aus meiner eigenen Erfahrung war der Simulator genug, um mich in die iPhone-Richtung zu drücken, und ich hatte keine größeren Probleme mit iOS. – jarryd

2

Ich würde sagen, es ist weit, weit (wirklich weit) einfache Code UI-Elemente in Android zu verbinden, als es in Xcode/IB ist. Es kommt jedoch darauf an, was Sie gewohnt sind. Ich komme aus dem Microsoft-Ökosystem, wo die Integration zwischen Code- und UI-Designer in den letzten 15 Jahren reibungslos und mühelos vonstatten ging (beginnend mit Visual Basic über die neuesten Versionen von Visual Studio). Android-Entwicklung (zumindest in Eclipse) ist viel mehr wie die MS-Welt als die Xcode/IB-Welt, obwohl es nicht wirklich einen Designer wie in Visual Studio gibt.

Um mit Android zu beginnen, ist es wahrscheinlich am besten, die meisten der iPhone-Konzepte, die Sie gewohnt sind, zu verwerfen, anstatt nach 1: 1-Analogen zu suchen. Ich bin gerade dabei, iPhone Entwicklung zu lernen, und ich finde es am besten, einfach zu akzeptieren, wie die Dinge dort gemacht werden, anstatt anzunehmen, dass es genau wie C# /. Net mit verschiedenen Namen für alles ist.

+0

Ich begann vor einer Weile in android zu suchen und fand den Simulator langweilig und nervig, spuckte CPU usw. Also ging ich für iphone. Ich frage mich nur, ob es sich lohnt, Android zu lernen, bis zu dem Punkt, dass meine iPhone und Android-Fähigkeiten gleich sind oder wenn es weiser wäre, meine iPhone-Entwicklung mit z. opengl es? Große Entscheidung. : P – jarryd

+2

@alJaree: Der Android-Simulator ist ein komplettes Desaster - Sie brauchen definitiv ein Gerät, auf dem Sie sich weiterentwickeln können. Meine persönliche Meinung über das iPhone ist, dass es bei Apple darum geht, überteuerte Geräte an eine selbst wahrgenommene Elite zu verkaufen, was bedeutet, dass es ihnen grundsätzlich nicht möglich ist, in Bezug auf den Marktanteil zu dominieren. Android schlägt sie also schon und geht nach oben, und Windows Phone 7 wird sie schließlich auch noch übertreffen. Wenn Sie Fähigkeiten für den größtmöglichen Markt entwickeln möchten, gehen Android. – MusiGenesis

+0

@MusiGenesis: Das stimmt. Meine Frage ist, wie werden in C++ und Ziel C geschriebene Spiele mit Java-basierten Android-Spielen verglichen? Sicherlich werden Spiele für iPhone Android auf Basis der Frameworks und der Macht der C-Varianten tun? Oder liege ich falsch? Ich bin nicht gegen Android, es hat das Gefühl, dass jeder das iPhone schlägt, weil sie voraus sind. Es gibt immer wieder Artikel darüber, warum Android so gut wie iphone oder besser ist als iphone, als ob es etwas zu beweisen hat. – jarryd

0

Es gibt keine IBOutlets, IBActions weder in AndroidDev eco noch in Visual Studio eco.

Anstelle von IBOUtlet müssen Sie das Steuerelement finden und es in den richtigen Typ umwandeln.

Button but1 = (Button) findViewById(R.layout.but1) 

IBAction konnte auf 2 verschiedene Arten

Reine Code >>

//find Button b1 = ... 
b1.setOnClickListener(new View.OnClickListener() { 
      @Override 
      public void onClick(View v) { 
       //do something 
      } 
     }); 

oder mit Layouts erfolgen >>

<Button 
    android:id="@+id/button2" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_marginLeft="10dp" 
    android:onClick="button2Clicked" 
    android:text="@string/text_but_1" /> 

xCode tut exactlly die gleiche Sache eigentlich. ibOutlets und ibActions sind nur synthetischer Zucker. das gleiche Zeug geht weiter, während Touch-Klassen gelesen und vom Storyboard initiiert werden xml

Visual Studio verwendet auch synthetischen Zucker wie xCode. Wenn Sie auf eine Schaltfläche doppelklicken, wird der Code, den Sie manuell in Android Developer schreiben, automatisch in eine Datei namens className.config.cs geschrieben.

Ich bin ein Neuling in androidStudio. Konnte nicht finden, dass Design-Schnittstelle synthetischen Zucker wie in xCode und VisualStudio. Vielleicht gibt es, aber ich konnte es einfach nicht finden.

Android-Entwickler und Visual Studio Code Complence ist nichts wie xCode. xCode saugt in diesen Bereichen. Ich benutze sie alle. Wenn Sie links neben dem Code eine Quittierungsmarke sehen, klicken Sie darauf. oder drücken Sie einfach Alt + Enter.

AndDev wird viel Code schreiben für Sie

C# und Java-Entwickler sehr verwendet Methoden aufrufen, die noch nicht geschrieben sind, lesen Sie Variablen, die nicht existieren.

Remember Alt + Enter! AndDev wird alles für Sie tun

Verwandte Themen