Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
Tento dvoudílný průvodce rozbalí aplikaci Telefon word pro zpracování druhé obrazovky. Základní stavební bloky aplikací pro Android jsou představeny podrobněji v architektuře Androidu.
V názorné části této příručky přidáte druhou obrazovku pro Telefon word aplikaci, abyste mohli sledovat historii čísel přeložených pomocí aplikace. Poslední aplikace bude mít druhou obrazovku, která zobrazí čísla, která byla přeložena, jak je znázorněno na snímku obrazovky vpravo:
Doprovodné podrobné recenze, které byly vytvořeny a diskutují o architektuře, navigaci a dalších nových konceptech Androidu.
Požadavky
Vzhledem k tomu, že tato příručka přebírá místo, kde Hello, Android opustí, vyžaduje dokončení rychlého startu Hello, Android.
Názorný postup
V tomto názorném postupu přidáte obrazovku Historie překladu do aplikace Telefon word.
Začněte otevřením aplikace Telefon word v sadě Visual Studio a úpravou souboru Main.axml z Průzkumník řešení.
Tip
Novější verze sady Visual Studio podporují otevírání .xml souborů v android Designeru.
Android Designer podporuje soubory .axml i .xml.
Aktualizace rozložení
Z panelu nástrojů přetáhněte tlačítko na návrhovou plochu a umístěte ho pod přeložené zobrazení textu Telefon Word TextView. V podokně Vlastnosti změňte ID tlačítka na@+id/TranslationHistoryButton
Nastavte vlastnost Text tlačítka na @string/translationHistoryhodnotu . Android Designer to interpretuje doslova, ale provedete několik změn, aby se text tlačítka zobrazoval správně:
Rozbalte uzel hodnot ve složce Resources v Průzkumník řešení a poklikejte na soubor prostředků řetězce Strings.xml:
translationHistory Do souboru Strings.xml přidejte název řetězce a hodnotu a uložte ho:
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="translationHistory">Translation History</string>
<string name="ApplicationName">Phoneword</string>
</resources>
Text tlačítka Historie překladu by se měl aktualizovat tak, aby odrážel novou hodnotu řetězce:
Když je na návrhové ploše vybráno tlačítko Historie překladu, najděte enabled nastavení v podokně Vlastnosti a nastavte jeho hodnotu tak, aby false se tlačítko zakázalo. To způsobí, že tlačítko bude tmavší na návrhové ploše:
Vytvoření druhé aktivity
Vytvořte druhou aktivitu, která umožní druhou obrazovku. V Průzkumník řešení klikněte pravým tlačítkem na projekt Telefon word a zvolte Přidat > novou položku...:
V dialogovém okně Přidat novou položku zvolte Aktivitu jazyka Visual C# > a pojmenujte soubor aktivity TranslationHistoryActivity.cs.
Kód šablony v TranslationHistoryActivity.cs nahraďte následujícím kódem:
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);
}
}
}
V této třídě vytváříte ListActivity a naplňujete ji programově, takže pro tuto aktivitu nemusíte vytvářet nový soubor rozložení. Tento článek je podrobněji popsán v tématu Hello, Android Multiscreen Deep Dive.
Přidání seznamu
Tato aplikace shromažďuje telefonní čísla (která uživatel přeložil na první obrazovce) a předává je na druhou obrazovku. Telefonní čísla se ukládají jako seznam řetězců. Chcete-li podporovat seznamy (a záměry, které se používají později), přidejte na začátek MainActivity.cs následující using direktivy:
using System.Collections.Generic;
using Android.Content;
Dále vytvořte prázdný seznam, který se dá vyplnit telefonními čísly.
Třída MainActivity bude vypadat takto:
[Activity(Label = "Phoneword", MainLauncher = true)]
public class MainActivity : Activity
{
static readonly List<string> phoneNumbers = new List<string>();
...// OnCreate, etc.
}
MainActivity Do třídy přidejte následující kód pro registraci tlačítka Historie překladu translateButton (tento řádek umístěte za deklaraci):
Button translationHistoryButton = FindViewById<Button> (Resource.Id.TranslationHistoryButton);
Na konec OnCreate metody přidejte následující kód pro připojení tlačítka Historie překladu:
translationHistoryButton.Click += (sender, e) =>
{
var intent = new Intent(this, typeof(TranslationHistoryActivity));
intent.PutStringArrayListExtra("phone_numbers", phoneNumbers);
StartActivity(intent);
};
Aktualizujte tlačítko Přeložit, aby se telefonní číslo přidalo do seznamu .phoneNumbers Obslužná rutina Click by se měla podobat následujícímu translateButton kódu:
// 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;
}
};
Uložte a sestavte aplikaci, abyste měli jistotu, že nedošlo k žádným chybám.
Spuštění aplikace
Nasaďte aplikaci do emulátoru nebo zařízení. Následující snímky obrazovky znázorňují spuštěnou Telefon word aplikaci:
Začněte otevřením projektu Telefon word v Visual Studio pro Mac a úpravou souboru Main.axml z oblasti řešení.
Tip
Novější verze sady Visual Studio podporují otevírání .xml souborů v android Designeru.
Android Designer podporuje soubory .axml i .xml.
Aktualizace rozložení
Z panelu nástrojů přetáhněte tlačítko na návrhovou plochu a umístěte ho pod přeložené zobrazení textu Telefon Word TextView. Na panelu Vlastnosti změňte ID tlačítka na@+id/TranslationHistoryButton:
Nastavte vlastnost Text tlačítka na @string/translationHistoryhodnotu . Android Designer to interpretuje doslova, ale provedete několik změn, aby se text tlačítka zobrazoval správně:
Rozbalte uzel hodnot ve složce Resources v oblasti řešení a poklikejte na soubor prostředků řetězce Strings.xml:
translationHistory Do souboru Strings.xml přidejte název řetězce a hodnotu a uložte ho:
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="translationHistory">Translation History</string>
<string name="ApplicationName">Phoneword</string>
</resources>
Text tlačítka Historie překladu by se měl aktualizovat tak, aby odrážel novou hodnotu řetězce:
Když je na návrhové ploše zaškrtnuté tlačítko Historie překladu, otevřete kartu Chování v oblasti Vlastnosti a poklikáním na zaškrtávací políčko Povoleno tlačítko zakažte. To způsobí, že tlačítko bude tmavší na návrhové ploše:
Vytvoření druhé aktivity
Vytvořte druhou aktivitu, která umožní druhou obrazovku. V oblasti řešení klikněte na ikonu šedého ozubeného kolečka vedle projektu Telefon word a zvolte Přidat > nový soubor...:
V dialogovém okně Nový soubor zvolte Aktivita Androidu>, pojmenujte aktivitu TranslationHistoryActivitya potom klikněte na Přidat.
Nahraďte kód TranslationHistoryActivity šablony následujícím kódem:
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);
}
}
}
V této třídě ListActivity se vytvoří a naplní programově, takže pro tuto aktivitu nemusíte vytvářet nový soubor rozložení. Toto je podrobněji vysvětleno v podrobném zobrazení Hello, Android MultiScreen.
Přidání seznamu
Tato aplikace shromažďuje telefonní čísla (která uživatel přeložil na první obrazovce) a předává je na druhou obrazovku. Telefonní čísla se ukládají jako seznam řetězců. Chcete-li podporovat seznamy (a záměry, které se používají později), přidejte na začátek MainActivity.cs následující using direktivy:
using System.Collections.Generic;
using Android.Content;
Dále vytvořte prázdný seznam, který se dá vyplnit telefonními čísly. Třída MainActivity bude vypadat takto:
[Activity(Label = "Phoneword", MainLauncher = true)]
public class MainActivity : Activity
{
static readonly List<string> phoneNumbers = new List<string>();
...// OnCreate, etc.
}
MainActivity Do třídy přidejte následující kód pro registraci tlačítka TranslationHistory History (tento řádek umístěte za TranslationHistoryButton deklaraci):
Button translationHistoryButton = FindViewById<Button> (Resource.Id.TranslationHistoryButton);
Na konec OnCreate metody přidejte následující kód pro připojení tlačítka Historie překladu:
translationHistoryButton.Click += (sender, e) =>
{
var intent = new Intent(this, typeof(TranslationHistoryActivity));
intent.PutStringArrayListExtra("phone_numbers", phoneNumbers);
StartActivity(intent);
};
Aktualizujte tlačítko Přeložit, aby se telefonní číslo přidalo do seznamu .phoneNumbers Obslužná rutina Click by se měla podobat následujícímu TranslateHistoryButton kódu:
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;
}
};
Spuštění aplikace
Nasaďte aplikaci do emulátoru nebo zařízení. Následující snímky obrazovky znázorňují spuštěnou Telefon word aplikaci:
Blahopřejeme k dokončení první víceobrazovkové aplikace Xamarin.Android! Teď je čas rozeseknout nástroje a dovednosti, které jste se právě naučili – další možností je Hello, Android Multiscreen Deep Dive.












