酢ろぐ!

カレーが嫌いなスマートフォンアプリプログラマのブログ。

【解決済み】Xamarin.Androidで「SimpleListItem1」などの組み込みのリストアイテムのレイアウトの定義値が存在しなくって困った件

Xamarin.iOSで作っていたアプリが一通りできたので審査に出しました。同じアプリをXamarin.Androidで作るにあたってリストビューってどうやって表示するんだろうと調べてみました。

ListViewに文字列を表示させるだけであれば難しくなさそうと思って実装してみたのですが、Android.Resource.Layout.SimpleListItem1が定義されておらずコンパイルエラーが発生しました。

namespace hoge.Android
{
    [Activity(Label = "hoge", MainLauncher = true, Icon = "@drawable/icon")]
    public class MainActivity : ListActivity
    {
        protected override void OnCreate(Bundle bundle)
        {
            base.OnCreate(bundle);

            var adapter = new ArrayAdapter(this, 
        Android.Resource.Layout.SimpleListItem1); // ← 定義されていない?
            for (var i = 0; i < 40; i++)
        {
            adapter.Add("item_" + i);
        }

            ListAdapter = adapter;
        }
    }
}

単純にアセンブリの参照忘れかもしれませんがにっちもさっちもいかず、Android.Resource.Layout.SimpleListItem1の代わりにsimple_list_item_1の定義値でもある0x01090003を指定して実行することはできました。

何が悪いのか分からなくって、基本的なところで詰まっていると先が長そうです……

追記

お昼から戻ってきたらリプライを頂いていました。

解決しました!まさしくその通りで、hoge.Android 名前空間Android 名前空間が競合していました。