2016-05-05 5 views
0

Ich bin neu in der Xamarin-Welt, also brauche ich wirklich deine Hilfe. In meiner allerersten Anwendung möchte ich einen Fortschrittsbalken mit einer Schaltfläche verknüpfen. Wenn ich auf den Button klicke, wird der Fortschrittsbalken angezeigt und wenn der Fortschritt endet, verschwindet der Fortschrittsbalken.Wie verknüpfe ich eine Fortschrittsleiste mit einer Schaltfläche in Xamarin mit Visual Studio?

Hier ist mein C# -Code:

translateButton.Click += (object sender, EventArgs e) => 
{ 
    ProgressBar pb = FindViewById<ProgressBar>(Resource.Id.progressBar1); 
    Thread.Sleep(1000); 
    pb.Enabled = true; 

    translateNumber = Core.PhonewordTranslator.ToNumber(phoneNumberText.Text); 
    if (string.IsNullOrWhiteSpace(translateNumber)) 
    { 
     callButton.Text = "Call"; 
     callButton.Enabled = false; 
     pb.Enabled = true; 
    } 

    else 
    { 
     callButton.Text = "Call" + translateNumber; 
     callButton.Enabled = true; 
     pb.Enabled = true; 
    } 
}; 

dieser Code von diesem tutorial auf Xamarin Website.

+0

„assoziiert einen Fortschrittsbalken mit einer Taste“, die keinen Sinn macht, auch nicht wahr über jedes Problem, Code etwas gefragt, und wenn Sie ein Problem fragen über es. – Gusman

+0

Warum kein Sinn! Heben Sie einfach den Fortschrittsbalken an, bis der Prozess, den der Button ausgeführt hat, beendet wird. –

Antwort

0

so etwas wie dieses Versuchen:

ProgressBar pb; 
Button translateButton; 
EditText phoneNumberText; 

protected override void OnCreate(Bundle savedInstanceState) 
{ 
    base.OnCreate(savedInstanceState); 
    SetContentView(Resource.Layout.Main); 

    translateButton = FindViewById<Button>(Resource.Id.translateButton); 
    phoneNumberText = FindViewById<EditText>(Resource.Id.phoneNumberText); 
    pb = FindViewById<ProgressBar>(Resource.Id.pb); 
    pb.Visibility = ViewStates.Invisible; 

    translateButton.Click += translateButtonClicked; 
} 

async void translateButtonClicked (object sender, EventArgs e) 
{ 
    pb.Visibility = ViewStates.Visible; 
    await myMethod(); 
    pb.Visibility = ViewStates.Gone; 
} 

async Task myMethod() 
{ 
    await Task.Run(() => { 
     // 
     // Do the work stuff here 
     // 
    }); 
} 
Verwandte Themen