سؤال

لدي فئة رئيسية مع زر "إضافة عنصر" ومقابلة قائمة وفئة AdditemActivity مع مربع نص وزر "حفظ". يجب على المستخدم النقر فوق "إضافة عنصر" ، والانتقال إلى شاشة الإضافة ، وإدخال عنصر ، وانقر فوق "حفظ" ، ثم العودة إلى شاشة MainActivity المحدثة.

(راجع للشغل ، أنا أستخدم monodroid ، لكنني لا أعتقد أن هذا ضروري مشكلة محددة monodroid).

"إضافة عنصر" انقر فوق الحدث (في النشاط الرئيسي):

    private void addItemButton_Click(object sender, EventArgs e)
    {
        var intent = new Intent();
        intent.SetClassName(this, "monoApp.AddItemClassName");
        StartActivityForResult(intent, 0);
    }

"حفظ" انقر فوق حدث (على إضافة نشاط العنصر):

    private void saveButton_Click(object sender, EventArgs e)
    {
        var itemname = FindViewById<EditText>(Resource.id.itemName);

        _repo.SaveItem(new Item() {Name = itemname.Text.ToString()});

        Toast.MakeText(this, "You saved: " + itemname.Text, ToastLength.Short).Show();

        var intent = new Intent();
        SetResult(Result.Ok, intent);
        Finish();
    }

ثم العودة إلى النشاط الرئيسي:

    protected override void OnActivityResult(int requestCode, Result resultCode, Intent data)
    {
        base.OnActivityResult(requestCode, resultCode, data);

        RefreshTheList();
    }

هذا يعمل مثل سحر ، في المرة الأولى. تنزلق الشاشة إلى "إضافة عنصر" ، ثم تنزلق إلى الرئيسي عند الانتهاء. ال مرة ثانية, ، ينزلق ، ولكن بعد ذلك ينزلق إلى بحد ذاتها, ، إذا كان هذا يجعل من أي معنى. ثم إذا ضربت حفظ تكرارا, ، يعود إلى العمل بشكل جيد.

إذا كان الفيديو سيساعد ، فقد نشرت مقطعًا مما أراه إلى Twitvid: http://www.twitvid.com/w7xzc

في الأساس ، لا أريد أن "تراجع إلى نفسه" من أي وقت مضى ، فماذا أفعل خطأ؟

هل كانت مفيدة؟

المحلول

لا أرى أي شيء خاطئ في الكود الخاص بك هنا ... أنا أخمن هنا.

قد يتم إطلاق نشاطك الثاني عدة مرات في المحاولة الثانية بطريقة ما من أجزاءك المتبقية من الكود.

اطبع سجل داخل additembutton_click وتحقق. إذا تم طباعة السجل مرتين ، فإنه يدعو الطريقة مرتين بطريقة أو بأخرى.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top