2017-02-27 8 views
0

私は自宅のフラグメントのクラスを膨らましようとしていると私はこのエラーを取得しています:C#の - Xamarin断片クラスは、主な活動によって認識されていない

型または名前空間名「DashboardFragment」が見つかりませんでした(あなたがusingディレクティブまたはアセンブリ参照が不足している?)ここで

は私のメインActivityクラスです:

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); 
    } 
} 
} 

私は何が欠けていますか?前もって感謝します。

+0

私は同じ問題を抱えて覚えています。私のクラスの1つが自動完成で表示されていませんでした。私のプロジェクトは他のファイルにもエラーがありました。私がそれらを解決すると、それは表示を開始しました。プロジェクトが再構築され、エラーがないかどうかが確認されます。 – HeisenBerg

答えて

0

私は回避策を見つけました。新しい文字列とビューがResource Designerファイルに更新されていないことが判明しました。私は最初の.csprojファイル内の最初のPropertyGroupにこれらの行を追加する必要がありました:

<MonoAndroidResourcePrefix>Resources</MonoAndroidResourcePrefix> 
<AndroidResgenClass>Resource</AndroidResgenClass> 

その後、私はクリーンを行い、再構築します。その後、私は上記の行を削除し、別のビルドを実行しました。それはそれを修正!おかげ

関連する問題