Laden...

Ein ListView-Element als ProgressBar anzeigen.

Erstellt von TBMSam vor 4 Jahren Letzter Beitrag vor 4 Jahren 1.310 Views
T
TBMSam Themenstarter:in
9 Beiträge seit 2018
vor 4 Jahren
Ein ListView-Element als ProgressBar anzeigen.

Hallo Freunde,

Ich versuche gerade, eine simple Xamarin.Android-App zu erstellen, die eine Tabelle anzeigt. Sie zeigt nebst dem Table-Head ein ListView, der mehrere Elemente enthält.

Ist es möglich, dass bei Klick auf eines der Elemente die entsprechende Zeile als Ladebalken angezeigt wird, der gleichmäßig innerhalb eines bestimmten Zeitintervalls (bspw. 30 sec) von links nach rechts läuft?

Ich habe unten einen Screenshot angefügt, ich hoffe dieser zeigt die Tabelle etwas deutlicher, bzw., was ich zu tun versuche.

Zuletzt noch etwas Code, vielleicht hilft dieser auch ein wenig. Ich habe ihn etwas gekürzt, wenn ich zu viel rausgelöscht habe oder irgendetwas dadurch unverständlich wurde, lasst es mich wissen:

public class TableActivity : Activity
{
    ListView lv;
    ListAdapter adapter = null;
    protected override void OnCreate(Bundle bundle)
    {
        base.OnCreate(bundle);
        //...
        lv = FindViewById<ListView>(Resource.Id.geraeteListView);
        adapter = new ListAdapter(this, Resource.Layout.List, geraeteliste.CurrentGeraeteliste, Intent.GetStringExtra("ServerIP"))
        {
            parentActivity = this
        };
        lv.Adapter = adapter;
    }

    private async void OnItemClick(object sender, AdapterView.ItemClickEventArgs e)
    {
        if (geraeteliste.CurrentGeraeteliste[e.Position].bespielt == "J") return;
        //…
        await Task.Delay(0);
    } 
}

public class ListAdapter : ArrayAdapter
{
    //...
    public override View GetView(int position, View convertView, ViewGroup parent)
    {
        View v = convertView;
        if (v == null)
        {
            LayoutInflater inflater = (LayoutInflater)Context.GetSystemService(Context.LayoutInflaterService);
            v = inflater.Inflate(Resource.Layout.List, parent, false);
        }
        //...
        v.FindViewById<ImageView>(Resource.Id.typeImageView).SetImageResource(Resource.Drawable.Icon);
        v.FindViewById<TextView>(Resource.Id.numberTextView).Text = Geraetelist[position].geraeteplatz;
        v.FindViewById<TextView>(Resource.Id.descriptionTextView).Text = Geraetelist[position].geraeteinformation;
        ImageView iv = v.FindViewById<ImageView>(Resource.Id.bspImageView);
        iv.SetImageResource(Geraetelist[position].bespielt == "N" ? Resource.Drawable.greenPoint : Resource.Drawable.redPoint);
        //…
        return v;        
    }
}

Wäre wirklich dankbar für jeden Hinweis / jede noch zu kleine Antwort/Hilfe.^^

Liebe Grüße 😃