Я получил фрагмент с именем 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 as searchText Есть ли более простой способ сделать это?