Xamarin将EditText从片段传递到片段

问题描述 投票:0回答:2

我有一个名为Rating.cs的片段,这个rating.cs是searchText所在的位置。现在,我想做的就是获取searchText.text并将其传递到下一个片段,其中searchText是排序的条件。这是我的代码

Rating.cs

using System;
using System.Collections.Generic;
using System.Linq;
using Android.App;
using Android.OS;
using Android.Support.Design.Widget;
using Android.Text;
using Android.Views;
using Android.Widget;
using PediburRatingApp;
using PediburRatingApp.Adapter;
using PediburRatingApp.DataModels;
using PediburRatingApp.Fragments;

namespace PediburRatingApp.Activity
{

    public class Rating : Fragment
    {
        Button submit_button;
        public EditText searchText;

        List<Drivers> DriversList;

        View view;
        public override void OnCreate(Bundle savedInstanceState)
        {
            base.OnCreate(savedInstanceState);

            // Create your fragment here
        }

        public override View OnCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState)
        {
            // Use this to return your custom view for this Fragment
            // return inflater.Inflate(Resource.Layout.YourFragment, container, false);


            view = inflater.Inflate(Resource.Layout.rating, container, false);
            submit_button = (Button)view.FindViewById(Resource.Id.submit_rating);
            searchText = (EditText)view.FindViewById(Resource.Id.searchText);


            submit_button.Click += SubmitButton_Click;

            return view;
        }


        Fragment fragment;
        private void SubmitButton_Click(object sender, EventArgs e)
        {
            if (string.IsNullOrWhiteSpace(searchText.Text))
            {
                Snackbar snackBar = Snackbar.Make(view, "Please Enter A Value ", Snackbar.LengthShort);
                snackBar.Show();
            }
            else
            {

                FragmentTransaction transaction = this.FragmentManager.BeginTransaction();

                fragment = new DriversListFrag();

                 transaction.Replace(Resource.Id.FramePage, fragment);
                transaction.Commit();

            }


        }



    }
}

DriversListFrag

using System;
using System.Collections.Generic;
using System.Linq;
using Android.App;
using Android.OS;
using Android.Support.Design.Widget;
using Android.Support.V7.Widget;
using Android.Views;
using Android.Widget;
using PediburRatingApp;
using PediburRatingApp.Activity;
using PediburRatingApp.Adapter;
using PediburRatingApp.DataModels;
using PediburRatingApp.EventListener;
using PediburRatingApp.Fragments;

namespace PediburRatingApp.Fragments
{

    public class DriversListFrag : Fragment
    {
        View view;
        RecyclerView myRecyclerView;
        List<Drivers> DriversList;
        DriversAdapter adapter;
        DriversListener driversListener;
        EditText Rating.searchText;



        public override void OnCreate(Bundle savedInstanceState)
        {
            base.OnCreate(savedInstanceState);


        }
        public override View OnCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState)
        {
            view = inflater.Inflate(Resource.Layout.DriversList, container, false);

            myRecyclerView = (RecyclerView)view.FindViewById(Resource.Id.myRecyclerView);

           RetrievedData();
            //CreateData();
            //SetUpRecyClerView();
            return view;
        }
        private void SetUpRecyClerView()
        {
            myRecyclerView.SetLayoutManager(new Android.Support.V7.Widget.LinearLayoutManager(myRecyclerView.Context));
            adapter = new DriversAdapter(DriversList);
            myRecyclerView.SetAdapter(adapter);
        }
        public void CreateData()
        {
            DriversList = new List<Drivers>();
            DriversList.Add(new Drivers { Name = "Test", Location ="Test", BodyNum = "1056" });
            DriversList.Add(new Drivers { Name = "Test", Location ="Test",BodyNum = "1056", });

        }
        public void RetrievedData()
        {
            driversListener = new DriversListener();
            driversListener.Create();
            driversListener.DriversRetrieved += DriversListener_DriversRetrieved;
        }

        private void DriversListener_DriversRetrieved(object sender, DriversListener.DriversDataEventArgs e)
        {
             List<Drivers> SearchResult =
                (from drivers in DriversList
                 where drivers.BodyNum.Contains(searchText.Text.ToLower())
                 select drivers).ToList();
            DriversList = e.Drivers;
            SetUpRecyClerView();
        }
    }
}

我想将其添加到Driverlistfrag中,因为searchText可以做到这一点吗?

android xamarin xamarin.android
2个回答
0
投票

请通过以下链接,可能会对您有所帮助:


0
投票

我修改了您的一些代码,请看一下:

© www.soinside.com 2019 - 2024. All rights reserved.