Xamarin Android (नहीं Xamarin.Forms) में, मेरे पास 2 दृश्य हैं, प्रत्येक में एक बटन है।

MainActivity.cs में, मैं पहले दृश्य के साथ शुरुआत करता हूं और पहले बटन के लिए एक ऑनक्लिक हैंडलर सेट करता हूं। उस बटन पर क्लिक करने से दूसरा व्यू खुल जाता है, जो सही ढंग से काम कर रहा है।

इसके अलावा MainActivity.cs में, मैंने दूसरे बटन (दूसरे दृश्य में) के लिए एक ऑनक्लिक हैंडलर सेट किया है। हालांकि, उस बटन पर क्लिक करने से कुछ नहीं होता है - मैंने हैंडलर में ब्रेकपॉइंट भी सेट किया है लेकिन यह कभी नहीं आग लगती है। मैं कुछ तर्क जोड़ना चाहता हूं लेकिन अभी के लिए मैं केवल पहले दृश्य पर वापस नेविगेट करना चाहता हूं। दूसरे बटन के लिए हैंडलर सेट करने के लिए कोड यहां दिया गया है ...

View v2 = this.LayoutInflater.Inflate(Resource.Layout.view2, null);
Button b2 = v2.FindViewById<Button>(Resource.Id.button2);
b2.Click += b2OnClick;

...और क्लिक हैंडलर...

private void b2OnClick(object sender, EventArgs eventArgs)
{
    SetContentView(Resource.Layout.view1);
}

मैं केवल MainActivity.cs का उपयोग करना चाहता हूं लेकिन यदि यह संभव नहीं है, तो कृपया एक वैकल्पिक समाधान प्रदान करें।

2
tvwxyz 16 जून 2020, 02:11

1 उत्तर

सबसे बढ़िया उत्तर

जिस दृश्य 2 को आप पहले तत्काल चालू करते हैं वह वह दृश्य नहीं है जिसे आपने बाद में सेट किया है, इसलिए बटन क्लिक कभी ट्रिगर नहीं होगा, उदाहरण के लिए, आपको उन दो दृश्यों के लिए वैश्विक चर बनाना चाहिए

    View v1,v2;
    protected override void OnCreate(Bundle savedInstanceState)
    {
        base.OnCreate(savedInstanceState);
        Xamarin.Essentials.Platform.Init(this, savedInstanceState);

        v1 = this.LayoutInflater.Inflate(Resource.Layout.content_main, null);
        Button button = v1.FindViewById<Button>(Resource.Id.button1);
        button.Click += Button_Click;


        v2 = this.LayoutInflater.Inflate(Resource.Layout.XMLFile1, null);
        Button button2 = v2.FindViewById<Button>(Resource.Id.button2);
        button2.Click += Button2_Click;

        SetContentView(v1);

    }


    private void Button_Click(object sender, EventArgs e)
    {
        SetContentView(v2);
    }

    private void Button2_Click(object sender, EventArgs e)
    {
        SetContentView(v1);
    }
2
ColeX - MSFT 16 जून 2020, 02:07