Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
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:
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üğmeyi tasarı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
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:
Çö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:
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:
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:
İ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 Öğ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 OnCreate sonuna 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 Click translateButton 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:
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üğmeyi tasarı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:
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:
Çö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:
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:
Tasarım yüzeyinde Çeviri Geçmişi düğmesi seçili durumdayken, Özellikler Bölmesi'nde Davranış 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:
İ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 OnCreate sonuna 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 Click TranslateHistoryButton 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:
İ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.












