我有一个名为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可以做到这一点吗?
请通过以下链接,可能会对您有所帮助:
我修改了您的一些代码,请看一下: