2016-10-05 17 views
0

私はMvxAppCompatActivityで使用MvxListViewをしようとしているが、私は常に取得:にClassNotFoundException Mvx.MvxListView

InflateException:エラー膨張クラスをMvx.MvxListView にClassNotFoundException:クラスが見つかりませんでした「Mvx.MvxListView

ここで

は私AXMLです:ここでは

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:app="http://schemas.android.com/apk/res/com.viniciusmaia.missaocarona" 
    android:orientation="vertical" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent"> 
    <include 
     layout="@layout/Toolbar" /> 

    <Mvx.MvxListView 
     android:id="@+id/teste" 
     android:layout_width="fill_parent" 
     android:layout_height="fill_parent" 
     app:MvxBind="ItemsSource Usuarios;ItemClick UsuarioClickCommand" 
     app:MvxItemTemplate="@layout/usuarioitem"/> 
</LinearLayout> 

は私の活動です:

[Activity] 
public class UsuarioActivity : MvxAppCompatActivity<UsuarioViewModel> 
{ 
    protected override void OnCreate(Bundle savedInstanceState) 
    { 
     base.OnCreate(savedInstanceState); 

     SetContentView(Resource.Layout.UsuarioView);    

     var toolbar = FindViewById<Android.Support.V7.Widget.Toolbar>(Resource.Id.toolbar); 

     toolbar.Title = UsuarioMensagens.TITULO_Usuario; 

     //SetSupportActionBar(toolbar); 

     Window.AddFlags(WindowManagerFlags.DrawsSystemBarBackgrounds); 

     ViewModel.Carregamento = new Carregamento(this); 
     ViewModel.PreenchePagina(); 
    } 
} 

私はこのポストBinary XML file line #1: Error inflating class Mvx.MvxListViewようMvx.MvxListviewMvxListViewを使用してみましたが、何も私のために動作しません。

誰でも手伝ってもらえますか?

+0

セットアップクラスは何から継承していますか? – Cheesebaron

答えて

0

Mvx.MvxListViewMvxListViewの代わりにaxmlファイルに書き込んでみてください。

また、xmlns:app="http://schemas.android.com/apk/res/com.viniciusmaia.missaocarona"xmlns:app="http://schemas.android.com/apk/res-auto"である必要があります。ダブルチェックに

もう一つは、あなたのセットアップクラスがあなたのLinearLayoutこれで

xmlns:app="http://schemas.android.com/apk/res/com.viniciusmaia.missaocarona"

にこのラインを交換してみてくださいMvxAndroidSetup

+0

私は以前に試してみました。うまくいかない –

0

から派生したことを確認することです。

xmlns:app="http://schemas.android.com/apk/res-auto" 
4

アレックスの答えに記載されているMvx.MvxListViewは、カスタムで登録されたショートカットですInflater MvvmCrossでバインディングを実行します。これは、SetupクラスがMvxの検索場所を指定していない場合、ショートカットが機能しないことを意味します。

この場合、サポートパッケージの1つに含まれるMvxAppCompatActivityが使用されています。そこから継承した別個のセットアップがあり、多くの登録を処理します。また、色合いを意識したビューを設定します。

だからあなたのセットアップでは、あなたはMvxAppCompatSetupから継承する必要があります。

public class Setup : MvxAppCompatSetup 
{ 
} 

これはMvx.MvxListViewを見つけるために十分でなければなりません。それはあなたがあなたのセットアップでViewNamespaceAbbreviationsをオーバーライドすることで、より多くの略語を追加してみてくださいすることができない場合は、次の

public class Setup : MvxAppCompatSetup 
{ 
    ... 

    protected override IDictionary<string, string> ViewNamespaceAbbreviations new Dictionary<string, string> 
    { 
     {"Mvx", "MvvmCross.Binding.Droid.Views"}, 
     {"MyViews", "My.Custom.Views"}, 
     // add more abbreviations here 
    }; 
} 

これは、あなたのAXMLファイル内Mvxでそれらの前に付けるときMvvmCrossがMvvmCross.Binding.Droid.Views内のビューで見えるようになります。

"MVX" => "MvvmCross.Binding.Droid.Viewsは、" デフォルト一つであり、そして両方MvxAppCompatSetupから任意のBindingInflaterで動作するはずですが、また、MvxAndroidSetup

関連する問題