かずきのBlog@hatena

すきな言語は C# + XAML の組み合わせ。Azure Functions も好き。最近は Go 言語勉強中。日本マイクロソフトで働いていますが、ここに書いていることは個人的なメモなので会社の公式見解ではありません。

BaseAdapterの継承したクラスの作り方がよくわからない

public class MyAdapter : BaseAdapter<string>
{
    private List<string> l = new List<string>();

    private Context context;

    public MyAdapter(Context context)
    {
        this.context = context;
    }

    public override string this[int position]
    {
        get { return this.l[position]; }
    }

    public override int Count
    {
        get { return l.Count; }
    }

    public override long GetItemId(int position)
    {
        return position;
    }

    public override View GetView(int position, View convertView, ViewGroup parent)
    {
        if (convertView == null)
        {
            convertView = View.Inflate(this.context, Resource.Layout.MyLayout, parent);
        }
        convertView.FindViewById<TextView>(Resource.Id.textViewContent).Text = this[position];
        return convertView;
    }

    public void Add(string i)
    {
        this.l.Add(i);
        this.NotifyDataSetChanged();
    }
}

これでInflateのところで例外が出る。因みにMyLayout.axmlはこんな感じ。

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent">
    <TextView
        android:text="項目"
        android:textAppearance="?android:attr/textAppearanceLarge"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:id="@+id/textView1" />
    <TextView
        android:text="Small Text"
        android:textAppearance="?android:attr/textAppearanceSmall"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:id="@+id/textViewContent" />
</LinearLayout>

ん~。謎。