2016年

4月

29日

Xamarin Studio Android リスト表示

参考ページを元に掲載しています。

 

Xamarin.Studio Androidでリスト表示するためにはListViewクラスを使用します。
文字列のリスト(配列)を並べて表示します。

 

重要   このチュートリアルは、Mac Xamarin.Studioで使うためのものです。

新規プロジェクトを作成します。Android --> App --> Android App選択しをNextクリックします。

プロジェクト名はListAndroid01という名前でプロジェクトを作成します。

画面にListViewを配置する
画面表示用のaxmlファイルに以下のようにListViewを追加します。

Main.axml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical"
    android:layout_width="match_parent"
    android:layout_height="match_parent">
    <Button
        android:id="@+id/myButton"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="@string/hello" />
    <ListView
        android:minWidth="25px"
        android:minHeight="25px"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:id="@+id/listView1" />
</LinearLayout>
  

ListViewの一つ一つのアイテムのテンプレートになるファイルを用意する
ResourcesのLayoutフォルダ以下に「ListViewItemTemplate.xml」 Layout.XMLファイルを追加します。

ListViewItemTemplate.axml

<?xml version="1.0" encoding="utf-8"?>
<TextView xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/textItem"
    android:textSize="30sp"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content" />
  

C#コードでリストのアイテムを作成してセットする
最後にC#コードでリストを表示してあげます。

MainActivity.cs

using Android.App;
using Android.Widget;
using Android.OS;

namespace ListAndroid01
{
    [Activity (Label = "ListAndroid01", MainLauncher = true, Icon = "@mipmap/icon")]
    public class MainActivity : Activity
    {
        int count = 1;

        protected override void OnCreate (Bundle savedInstanceState)
        {
            base.OnCreate (savedInstanceState);

            // Set our view from the "main" layout resource
            SetContentView (Resource.Layout.Main);

            // Get our button from the layout resource,
            // and attach an event to it
            Button button = FindViewById<Button> (Resource.Id.myButton);
            
            button.Click += delegate {
                button.Text = string.Format ("{0} clicks!", count++);
            };

            var list = FindViewById<ListView>(Resource.Id.listView1);

            var items = new string[] 
            { "List1", "List2", "List3", "List4",
                "List5", "List6", "List7", "List8",
                "List9", "List10", "List11", "List12",
                "List13", "List14", "List15", "List16",
                "List17", "List18", "List19", "List20",
                "List21", "List22", "List23", "List24",
                "List25", "List26", "List27", "List28",
                "List29", "List30", "List31", "List32",
                "List33", "List34", "List35", "List36",
                "List37", "List38", "List39", "List40",
                "List41", "List42", "List43", "List44",
                "List45", "List46", "List47", "List48",
                "List49", "List50", "List51", "List52",
                "List53", "List54", "List55", "List56" };
            list.Adapter = new ArrayAdapter<string> 

                    (this, Resource.Layout.ListViewItemTemplate, items);
        }
    }
}
  

 

目 次