Aus Jux und Dollerei habe ich eine native Hello World-App für Windows Phone und Android gebaut, welche bei Klick auf einen Button ein Pop-Up anzeigt. Bei der Entwicklung des Beispiels war es mir wichtig, ein ähnliches und überschaubares Projekt mit Android-Code (Java) und Windows Phone-Code (C#) zu entwerfen, welches die Ähnlichkeiten und Unterscheide beider Programmiersprachen zeigt.
Hier der Code für meinem Vergleich:
MainPage.xaml.cs
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 | using System; using System.Collections.Generic; using System.Linq; using System.Net; using System.Windows; using System.Windows.Controls; using System.Windows.Documents; using System.Windows.Input; using System.Windows.Media; using System.Windows.Media.Animation; using System.Windows.Shapes; using Microsoft.Phone.Controls; namespace PhoneApp1 { // 1. Page / Activity public partial class MainPage : PhoneApplicationPage { // 2. Attribute private Button button; private Boolean isCompleted = false; public MainPage() { // 3. Button-Initialisierung button = new Button(); button.Content = "Hello World."; button.Click += new RoutedEventHandler(button_Click); // 4. Layout-Aufbau StackPanel stackPanel = new StackPanel(); stackPanel.Children.Add(button); // 5. Layout-Anzeige this.Content = stackPanel; } // 6. Button onClick-Event / Listener void button_Click(object sender, RoutedEventArgs e) { if (!isCompleted) { // 7. MessageBox / AlertDialog MessageBoxResult textBox = MessageBox.Show("Please close me.", "Close me", MessageBoxButton.OKCancel); if (textBox == MessageBoxResult.OK) { button.Content = "Tutorial complete."; isCompleted = true; } else { button.Content = "Please click me again."; } } else { NavigationService.GoBack(); } } } } |
MainActivity.java
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 | package de.bennyn.test; import android.app.Activity; import android.app.AlertDialog; import android.app.AlertDialog.Builder; import android.content.DialogInterface; import android.os.Bundle; import android.view.View; import android.view.View.OnClickListener; import android.widget.Button; import android.widget.LinearLayout; // 1. Page / Activity public class MainActivity extends Activity { // 2. Attribute private Button button; private boolean isCompleted = false; @Override public void onCreate(Bundle savedInstanceState) { // 3. Button-Initialisierung button = new Button(this); button.setText("Hello World."); button.setOnClickListener(new OnClickListener() { // 6. Button onClick-Event / Listener public void onClick(View arg0) { if (!isCompleted) { // 7. MessageBox / AlertDialog DialogInterface.OnClickListener dialogClickListener = new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { switch (which) { case DialogInterface.BUTTON_POSITIVE: button.setText("Tutorial complete."); isCompleted = true; break; case DialogInterface.BUTTON_NEGATIVE: button.setText("Please click me again."); break; } } }; Builder builder = new AlertDialog.Builder(MainActivity.this); builder.setTitle("Close me"); builder.setMessage("Please close me."); builder.setPositiveButton("OK", dialogClickListener); builder.setNegativeButton("Cancel", dialogClickListener); builder.show(); } else { System.exit(0); } } }); // 4. Layout-Aufbau LinearLayout layout = new LinearLayout(this); layout.addView(button); // 5. Layout-Anzeige super.onCreate(savedInstanceState); setContentView(layout); } } |