Share via


Hello, Android Multiscreen: Hızlı Başlangıç

Bu iki bölümlü kılavuz, ikinci bir ekranı işlemek için Telefon word uygulamasını genişletir. Bu arada temel Android Uygulama Yapı Taşları, Android mimarisine daha ayrıntılı bir bakış ile tanıtıldı.

Bu kılavuzun izlenecek yol bölümünde, uygulamayı kullanarak çevrilen sayıların geçmişini izlemek için Telefon word uygulamasına ikinci bir ekran ekleyeceksiniz. Son uygulama, sağdaki ekran görüntüsünde gösterildiği gibi "çevrilmiş" sayıları gösteren ikinci bir ekrana sahip olacaktır:

Örnek uygulama ekran görüntüleri

Buna eşlik eden Derin Dalış , nelerin derlendiğini gözden geçirerek mimari, gezinti ve yol boyunca karşılaşılan diğer yeni Android kavramlarını ele alır.

Gereksinimler

Bu kılavuz Hello, Android'in ayrıldığı yeri seçtiğinden Hello, Android Hızlı Başlangıcı'nın tamamlanmasını gerektirir.

İzlenecek yol

Bu kılavuzda, Telefon word uygulamasına bir Çeviri Geçmişi ekranı ekleyeceksiniz.

Visual Studio'da Telefon word uygulamasını açıp Çözüm Gezgini Main.axml dosyasını düzenleyerek başlayın.

İpucu

Visual Studio'nun daha yeni sürümleri, Android Tasarım Aracı içinde .xml dosyaları açmayı destekler.

Android Tasarım Aracı hem .axml hem de .xml dosyaları desteklenir.

Düzeni güncelleştirme

Araç Kutusu'ndan düğmeyitasarım yüzeyine sürükleyin ve Translated Telefon Word TextView öğesinin altına yerleştirin. Özellikler bölmesinde düğme kimliğini olarak değiştirin@+id/TranslationHistoryButton

Yeni düğmeyi sürükleme

Düğmenin Text özelliğini olarak @string/translationHistoryayarlayın. Android Tasarım Aracı bunu tam anlamıyla yorumlayacaktır, ancak düğme metninin doğru şekilde görünmesini sağlamak için birkaç değişiklik yapacaksınız:

Çeviri geçmişi düğme metnini ayarlama

Çözüm Gezgini Kaynaklar klasörünün altındaki değerler düğümünü genişletin ve dize kaynakları dosyasına çift tıklayın Strings.xml:

Strings.xml aç

translationHistory dize adını ve değerini Strings.xml dosyasına ekleyin ve kaydedin:

<?xml version="1.0" encoding="utf-8"?>
<resources>
    <string name="translationHistory">Translation History</string>
    <string name="ApplicationName">Phoneword</string>
</resources>

Çeviri Geçmişi düğme metni, yeni dize değerini yansıtacak şekilde güncelleştirilmelidir:

Düğme yeni dize değerini yansıtır

Tasarım yüzeyinde Çeviri Geçmişi düğmesi seçili durumdayken, Özellikler bölmesinde ayarı bulun enabled ve düğmeyi devre dışı bırakmak için değerini olarak false ayarlayın. Bu, düğmenin tasarım yüzeyinde koyulaşmasına neden olur:

Çeviri geçmişini devre dışı bırak düğmesi

İkinci etkinliği oluşturma

İkinci ekranı açmak için ikinci bir Etkinlik oluşturun. Çözüm Gezgini, Telefon word projesine sağ tıklayın ve Yeni Öğe Ekle...'yi > seçin:

Yeni dosya ekleme

Yeni Öğe Ekle iletişim kutusunda Visual C# > Etkinliği'ni seçin ve Etkinlik dosyasını TranslationHistoryActivity.cs olarak adlandırın.

TranslationHistoryActivity.cs'daki şablon kodunu aşağıdakilerle değiştirin:

using System;
using System.Collections.Generic;
using Android.App;
using Android.OS;
using Android.Widget;
namespace Phoneword
{
    [Activity(Label = "@string/translationHistory")]
    public class TranslationHistoryActivity : ListActivity
    {
        protected override void OnCreate(Bundle bundle)
        {
            base.OnCreate(bundle);
            // Create your application here
            var phoneNumbers = Intent.Extras.GetStringArrayList("phone_numbers") ?? new string[0];
            this.ListAdapter = new ArrayAdapter<string>(this, Android.Resource.Layout.SimpleListItem1, phoneNumbers);
        }
    }
}

Bu sınıfta program aracılığıyla oluşturup ListActivity doldurduğunuz için bu Etkinlik için yeni bir düzen dosyası oluşturmanız gerekmez. Bu konu Hello, Android Multiscreen Deep Dive'da daha ayrıntılı olarak ele alınmıştı.

Liste ekleme

Bu uygulama telefon numaralarını toplar (kullanıcının ilk ekranda çevirdiği) ve bunları ikinci ekrana geçirir. Telefon numaraları bir dize listesi olarak depolanır. Listeleri (ve daha sonra kullanılan Amaçlar) desteklemek için, MainActivity.cs en üstüne aşağıdaki using yönergeleri ekleyin:

using System.Collections.Generic;
using Android.Content;

Ardından, telefon numaralarıyla doldurulabilecek boş bir liste oluşturun. MainActivity sınıfı şöyle görünür:

[Activity(Label = "Phoneword", MainLauncher = true)]
public class MainActivity : Activity
{
    static readonly List<string> phoneNumbers = new List<string>();
    ...// OnCreate, etc.
}

MainActivity sınıfında, Çeviri Geçmişi düğmesini kaydetmek için aşağıdaki kodu ekleyin (bu satırı bildirimden translateButton sonra yerleştirin):

Button translationHistoryButton = FindViewById<Button> (Resource.Id.TranslationHistoryButton);

Çeviri Geçmişi düğmesini ayarlamak için yönteminin OnCreatesonuna aşağıdaki kodu ekleyin:

translationHistoryButton.Click += (sender, e) =>
{
    var intent = new Intent(this, typeof(TranslationHistoryActivity));
    intent.PutStringArrayListExtra("phone_numbers", phoneNumbers);
    StartActivity(intent);
};

Telefon numarasını listesine eklemek için Çevir düğmesini güncelleştirinphoneNumbers. işleyicisi ClicktranslateButton aşağıdaki koda benzemelidir:

// Add code to translate number
string translatedNumber = string.Empty;
translateButton.Click += (sender, e) =>
{
    // Translate user's alphanumeric phone number to numeric
    translatedNumber = Core.PhonewordTranslator.ToNumber(phoneNumberText.Text);
    if (string.IsNullOrWhiteSpace(translatedNumber))
    {
        translatedPhoneWord.Text = "";
    }
    else
    {
        translatedPhoneWord.Text = translatedNumber;
        phoneNumbers.Add(translatedNumber);
        translationHistoryButton.Enabled = true;
    }
};

Hata olmadığından emin olmak için uygulamayı kaydedin ve oluşturun.

Uygulamayı çalıştırma

Uygulamayı öykünücüye veya cihaza dağıtın. Aşağıdaki ekran görüntüleri, çalışan Telefon word uygulamasını gösterir:

Örnek ekran görüntüleri

Telefon word projesini Mac için Visual Studio açarak ve Çözüm Bölmesi'nden Main.axml dosyasını düzenleyerek başlayın.

İpucu

Visual Studio'nun daha yeni sürümleri, Android Tasarım Aracı içinde .xml dosyaları açmayı destekler.

Android Tasarım Aracı hem .axml hem de .xml dosyaları desteklenir.

Düzeni güncelleştirme

Araç Kutusu'ndan düğmeyitasarım yüzeyine sürükleyin ve Translated Telefon Word TextView öğesinin altına yerleştirin. Özellikler panelinde düğme kimliğini olarak @+id/TranslationHistoryButtondeğiştirin:

Yeni düğmeyi sürükleme

Düğmenin Text özelliğini olarak @string/translationHistoryayarlayın. Android Tasarım Aracı bunu tam anlamıyla yorumlayacaktır, ancak düğme metninin doğru şekilde görünmesini sağlamak için birkaç değişiklik yapacaksınız:

Çeviri geçmişi düğme metnini ayarlama

Çözüm Bölmesi'ndeki Kaynaklar klasörünün altındaki değerler düğümünü genişletin ve dize kaynakları dosyasına çift tıklayın Strings.xml:

Dizeleri Aç

translationHistory dize adını ve değerini Strings.xml dosyasına ekleyin ve kaydedin:

<?xml version="1.0" encoding="utf-8"?>
<resources>
    <string name="translationHistory">Translation History</string>
    <string name="ApplicationName">Phoneword</string>
</resources>

Çeviri Geçmişi düğme metni, yeni dize değerini yansıtacak şekilde güncelleştirilmelidir:

Düğme yeni dize değerini yansıtır

Tasarım yüzeyinde Çeviri Geçmişi düğmesi seçili durumdayken, Özellikler Bölmesi'ndeDavranış sekmesini açın ve düğmeyi devre dışı bırakmak için Etkin onay kutusuna çift tıklayın. Bu, düğmenin tasarım yüzeyinde koyulaşmasına neden olur:

Çeviri geçmişini devre dışı bırak düğmesi

İkinci etkinliği oluşturma

İkinci ekranı açmak için ikinci bir Etkinlik oluşturun. Çözüm Bölmesi'nde, Telefon word projesinin yanındaki gri dişli simgesine tıklayın ve Yeni Dosya Ekle...'yi > seçin:

Yeni Dosya iletişim kutusunda Android > Etkinliği'ni seçin, Etkinlik TranslationHistoryActivityolarak adlandırın ve Ekle'ye tıklayın.

içindeki TranslationHistoryActivity şablon kodunu aşağıdakilerle değiştirin:

using System;
using System.Collections.Generic;
using Android.App;
using Android.OS;
using Android.Widget;
namespace Phoneword
{
    [Activity(Label = "@string/translationHistory")]
    public class TranslationHistoryActivity : ListActivity
    {
        protected override void OnCreate(Bundle bundle)
        {
            base.OnCreate(bundle);
            // Create your application here
            var phoneNumbers = Intent.Extras.GetStringArrayList("phone_numbers") ?? new string[0];
            this.ListAdapter = new ArrayAdapter<string>(this, Android.Resource.Layout.SimpleListItem1, phoneNumbers);
        }
    }
}

Bu sınıfta program aracılığıyla bir ListActivity oluşturulur ve doldurulur, bu nedenle bu Etkinlik için yeni bir düzen dosyası oluşturmanız gerekmez. Bu, Hello, Android Multiscreen Deep Dive'da daha ayrıntılı olarak açıklanmıştır.

Liste ekleme

Bu uygulama telefon numaralarını toplar (kullanıcının ilk ekranda çevirdiği) ve bunları ikinci ekrana geçirir. Telefon numaraları bir dize listesi olarak depolanır. Listeleri (ve daha sonra kullanılan Amaçlar) desteklemek için, MainActivity.cs en üstüne aşağıdaki using yönergeleri ekleyin:

using System.Collections.Generic;
using Android.Content;

Ardından, telefon numaralarıyla doldurulabilecek boş bir liste oluşturun. MainActivity sınıfı şöyle görünür:

[Activity(Label = "Phoneword", MainLauncher = true)]
public class MainActivity : Activity
{
    static readonly List<string> phoneNumbers = new List<string>();
    ...// OnCreate, etc.
}

MainActivity sınıfında Aşağıdaki kodu ekleyerek TranslationHistory History düğmesini kaydedin (bu satırı bildirimin TranslationHistoryButton arkasına yerleştirin):

Button translationHistoryButton = FindViewById<Button> (Resource.Id.TranslationHistoryButton);

Çeviri Geçmişi düğmesini ayarlamak için yönteminin OnCreatesonuna aşağıdaki kodu ekleyin:

translationHistoryButton.Click += (sender, e) =>
{
    var intent = new Intent(this, typeof(TranslationHistoryActivity));
    intent.PutStringArrayListExtra("phone_numbers", phoneNumbers);
    StartActivity(intent);
};

Telefon numarasını listesine eklemek için Çevir düğmesini güncelleştirinphoneNumbers. işleyicisi ClickTranslateHistoryButton aşağıdaki koda benzemelidir:

translateButton.Click += (sender, e) =>
{
    // Translate user's alphanumeric phone number to numeric
    translatedNumber = Core.PhonewordTranslator.ToNumber(phoneNumberText.Text);
    if (string.IsNullOrWhiteSpace(translatedNumber))
    {
        translatedPhoneWord.Text = "";
    }
    else
    {
        translatedPhoneWord.Text = translatedNumber;
        phoneNumbers.Add(translatedNumber);
        translationHistoryButton.Enabled = true;
    }
};

Uygulamayı çalıştırma

Uygulamayı öykünücüye veya cihaza dağıtın. Aşağıdaki ekran görüntüleri, çalışan Telefon word uygulamasını gösterir:

Örnek ekran görüntüleri

İlk çok ekranlı Xamarin.Android uygulamanızı tamamladıktan sonra tebrikler! Şimdi yeni öğrendiğiniz araçları ve becerileri dağıtmanın zamanı geldi. Sırada Hello, Android Multiscreen Deep Dive var.