【发布时间】:2018-10-18 20:00:51
【问题描述】:
当点击我的回收站视图中的一个项目时,我正在尝试转移到一个新片段:
FragmentTransaction fragmentTx = ((AppCompatActivity)Activity).SupportFragmentManager.BeginTransaction();
fragmentTx.Replace(Resource.Id.container, fragment);
但出现以下错误:
System.NullReferenceException:对象引用未设置为对象的实例。
我尝试了很多不同的方法,但都不起作用。
我从这里获得了回收站视图:
private void MMainView_Click(object sender, EventArgs e)
{
int position = mRecyclerView.GetChildAdapterPosition((View)sender);
int indexPosition = (mFavourites.Count - 1) - position;
favFragment.TransitionOnCardClick(mFavourites[indexPosition].CalcName);
}
然后在具有回收器视图的片段中调用此方法:
public void TransitionOnCardClick(string cardName)
{
Fragment fragment = null;
switch (cardName)
{
case "Pace":
fragment = splitFragment;
break;
case "Watts":
fragment = wattFragment;
break;
case "Weight Adjustment":
fragment = weightFragment;
break;
}
FragmentTransaction fragmentTx = ((AppCompatActivity)Activity).SupportFragmentManager.BeginTransaction();
fragmentTx.Replace(Resource.Id.container, fragment);
fragmentTx.AddToBackStack(null);
fragmentTx.Commit();
}
我该如何解决这个问题? 我的问题与其他人不同,因为我尝试了很多不同的方法,但我还没有找到解决方案。
【问题讨论】:
-
您的 switch 语句似乎与它的任何情况都不匹配。您确定
cardName实际等于这三种情况之一吗? -
@TheWanderer 之前已经对这些案例进行了测试
标签: c# android android-fragments xamarin.android fragmentmanager