В настоящее время я работаю с утилизатором в Xamarin android, где я хочу отфильтровать отображаемые данные.Я имел обыкновение работать с Java на Android и успешно создал фильтр на просмотрщик с использованием searchview.Но для этого я хочу отобразить только неполные данные, где любой из элементов в представлении является пустым.Ниже приведен мой код для класса активности, а также класса адаптера recyclerview. Ответы с кодом или объяснением были бы действительно полезны.Спасибо.
class RemoveAlertActivity : Activity
{
private RecyclerView mRecyclerView_remove;
private RecyclerView.LayoutManager mLayoutManager_remove;
private RecyclerView.Adapter mAdapter_remove;
private List<Removerecyclerholder> mRemoverecyclerholder;
protected override void OnCreate(Bundle bundle)
{
base.OnCreate(bundle);
SetContentView(Resource.Layout.RemoveAlert);
SQLiteDb obj = new SQLiteDb();
List<ScanSummary> scan = new List<ScanSummary>();
scan = obj.GetAllScanSummaryData();
ScanSummary[] array = scan.ToArray();
mRemoverecyclerholder = new List<Removerecyclerholder>();
for (int i = 0; i < array.Length; i++)
{
mRemoverecyclerholder.Add(new Removerecyclerholder() { partnumber_r = scan[i].SSPartNo, containernumber_r = scan[i].SSContainerSN, scanquantity_r = scan[i].SSPackType, totalquantity_r = scan[i].SSStatus });
}
mRecyclerView_remove = FindViewById<RecyclerView>(Resource.Id.recyclerview_remove);
mLayoutManager_remove = new LinearLayoutManager(this);
mRecyclerView_remove.SetLayoutManager(mLayoutManager_remove);
mAdapter_remove = new RecyclerAdapter_remove(mRemoverecyclerholder);
mRecyclerView_remove.SetAdapter(mAdapter_remove);
}
}
public class RecyclerAdapter_remove : RecyclerView.Adapter
{
private List<Removerecyclerholder> mRemoverecyclerholder;
public RecyclerAdapter_remove(List<Removerecyclerholder> removerecyclerholder)
{
mRemoverecyclerholder = removerecyclerholder;
}
public class MyView : RecyclerView.ViewHolder
{
public View mMainView { get; set; }
public TextView mpartnumber_r { get; set; }
public TextView mcontainernumber_r { get; set; }
public TextView mtotalquantity_r { get; set; }
public TextView mscanquantity_r { get; set; }
public MyView(View view) : base(view)
{
mMainView = view;
}
}
public override RecyclerView.ViewHolder OnCreateViewHolder(ViewGroup parent, int viewType)
{
SQLiteDb obj = new SQLiteDb();
List<ScanSummary> scan = obj.GetAllScanSummaryData();
View RemoveRecycleLayout = LayoutInflater.From(parent.Context).Inflate(Resource.Layout.RemoveAlertRecycleLayout, parent, false);
TextView txtpartnumber_r = RemoveRecycleLayout.FindViewById<TextView>(Resource.Id.partnumber_remove);
TextView txtcontainernumber_r = RemoveRecycleLayout.FindViewById<TextView>(Resource.Id.containernumber_remove);
TextView txttotalquantity_r = RemoveRecycleLayout.FindViewById<TextView>(Resource.Id.totalquantity_remove);
TextView txtscanquantity_r = RemoveRecycleLayout.FindViewById<TextView>(Resource.Id.scanquantity_remove);
MyView view = new MyView(RemoveRecycleLayout) { mpartnumber_r = txtpartnumber_r, mcontainernumber_r = txtcontainernumber_r, mtotalquantity_r = txttotalquantity_r, mscanquantity_r = txtscanquantity_r };
return view;
}
public override void OnBindViewHolder(RecyclerView.ViewHolder holder, int position)
{
MyView myholder = holder as MyView;
myholder.mpartnumber_r.Text = mRemoverecyclerholder[position].partnumber_r;
myholder.mcontainernumber_r.Text = mRemoverecyclerholder[position].containernumber_r;
myholder.mtotalquantity_r.Text = mRemoverecyclerholder[position].totalquantity_r;
myholder.mscanquantity_r.Text = mRemoverecyclerholder[position].scanquantity_r;
((MyView)holder).mMainView.Click += delegate (object sender, EventArgs e)
{
View mMainView = (View)sender;
mMainView.SetBackgroundColor(color: Color.Blue);
var activity = new Intent(Application.Context, typeof(RemoveDataDetails));
activity.PutExtra("partnumber_r", mRemoverecyclerholder[position].partnumber_r);
activity.PutExtra("containernumber_r", mRemoverecyclerholder[position].containernumber_r);
Application.Context.StartActivity(activity);
};
}
public override int ItemCount
{
get { return mRemoverecyclerholder.Count; }
}
}