Ich bin versucht, ein Haus Fragment Klasse aufzublasen und ich bekomme diese Fehlermeldung:C# - Xamarin Fragment Klasse wird nicht von Hauptaktivität erkannt
Der Typ oder Namespace-Name ‚DashboardFragment‘ konnte nicht gefunden werden (möglicherweise fehlt eine using-Direktive oder ein Assemblyverweis?)
Hier ist meine Hauptaktivitätsklasse:
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();
}
}
}
}
Das ist mein Fragment Klasse:
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);
}
}
}
Was vermisse ich? Danke im Voraus.
Ich erinnere mich, das gleiche Problem zu haben. Einer meiner Klasse wurde nicht automatisch vervollständigt. Mein Projekt hatte Fehler in anderen Dateien. Sobald ich sie gelöst hatte, begann es zu zeigen. Erstellen Sie Ihr Projekt neu, um zu überprüfen, ob Fehler vorhanden sind. – HeisenBerg