0
我試圖誇大家庭片段類,我得到這個錯誤:C# - Xamarin片段類沒有被主要活動的認可
類型或命名空間名稱「DashboardFragment」找不到(是否缺少using指令或程序集引用?)
這是我的主要活動類:
using Android.App;
using Android.Widget;
using Android.OS;
using Android.Support.Design.Widget;
using SupportFragment = Android.Support.V4.App.Fragment;
using Android.Support.V4.Widget;
using Android.Support.V7.App;
using Android.Views;
namespace LottoGenie.Androidv2
{
[Activity(Label = "LottoGenie.Androidv2", MainLauncher = true, Icon ="@drawable/ic_launcher")]
public class MainActivity : Activity
{
private DrawerLayout drawerLayout;
protected override void OnCreate(Bundle bundle)
{
base.OnCreate(bundle);
// Set our view from the "main" layout resource
SetContentView(Resource.Layout.Main);
drawerLayout = FindViewById<DrawerLayout>(Resource.Id.drawer_layout);
var toolbar = FindViewById<Toolbar>(Resource.Id.app_bar);
SetActionBar(toolbar);
ActionBar.SetTitle(Resource.String.ApplicationName);
ActionBar.SetDisplayHomeAsUpEnabled(true);
ActionBar.SetDisplayShowHomeEnabled(true);
var navigationView = FindViewById<NavigationView>(Resource.Id.nav_view);
navigationView.NavigationItemSelected += NavigationView_NavigationItemSelected;
var drawerToggle = new ActionBarDrawerToggle(this, drawerLayout, Resource.String.open_drawer, Resource.String.close_drawer);
drawerLayout.AddDrawerListener(drawerToggle);
drawerToggle.SyncState();
var ft = this.FragmentManager.BeginTransaction();
ft.AddToBackStack(null);
ft.Add(Resource.Id.HomeFrameLayout, new DashboardFragment());
ft.Commit();
}
protected override void OnResume()
{
ActionBar.SetTitle(Resource.String.ApplicationName);
base.OnResume();
}
void NavigationView_NavigationItemSelected(object sender, NavigationView.NavigationItemSelectedEventArgs e)
{
switch (e.MenuItem.ItemId)
{
case (Resource.Id.nav_home):
Toast.MakeText(this, "Home!", ToastLength.Short).Show();
break;
case (Resource.Id.nav_powerball):
Toast.MakeText(this, "Powerball Picks!", ToastLength.Short).Show();
break;
case (Resource.Id.nav_megamillions):
Toast.MakeText(this, "MegaMillions Picks!", ToastLength.Short).Show();
break;
case (Resource.Id.nav_jumbobucks):
Toast.MakeText(this, "Jumbobucks Picks!", ToastLength.Short).Show();
break;
}
drawerLayout.CloseDrawers();
}
public override bool OnCreateOptionsMenu(Android.Views.IMenu menu)
{
MenuInflater.Inflate(Resource.Menu.action_menu, menu);
if (menu != null)
{
menu.FindItem(Resource.Id.action_refresh).SetVisible(true);
}
return base.OnCreateOptionsMenu(menu);
}
public override bool OnOptionsItemSelected(IMenuItem item)
{
switch (item.ItemId)
{
case Android.Resource.Id.Home:
return true;
default:
return base.OnOptionsItemSelected(item);
}
}
public override void OnBackPressed()
{
if (FragmentManager.BackStackEntryCount != 0)
{
FragmentManager.PopBackStack();
}
else
{
base.OnBackPressed();
}
}
}
}
這是我的片段類:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Android.App;
using Android.Content;
using Android.OS;
using Android.Runtime;
using Android.Util;
using Android.Views;
using Android.Widget;
namespace LottoGenie.Androidv2
{
public class DashboardFragment : Fragment
{
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 view = inflater.Inflate(Resource.Layout.homeLayout, container, false);
return view;//base.OnCreateView (inflater.Inflate(Resource.Layout.homeLayout, container, savedInstanceState);
}
}
}
我在想什麼?提前致謝。
我記得有同樣的問題。我的一個班級沒有在自動完成中顯示。我的項目在其他文件中有錯誤。一旦我解決了它們,它就開始顯示。重建您的項目以檢查是否有任何錯誤。 – HeisenBerg