Hello World-App mit Windows Phone und Android

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);
  }
}

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

Diese Website verwendet Akismet, um Spam zu reduzieren. Erfahre mehr darüber, wie deine Kommentardaten verarbeitet werden.