ListView

ListView

f:id:mo121_7:20170722220858j:plain

Mian.axmlでListViewの定義をします。 そのあと表示させるViewのテンプレートを作成しました。

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">
    <ListView
        android:id="@+id/listView"
        android:layout_height="match_parent"
        android:layout_width="wrap_content" />
</LinearLayout>

ViewTmplate

<?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="match_parent"
    android:layout_height="match_parent" />

ListViewにlistを渡すためにArrayAdapterを使います。

MainActivity.cs

using System;

using Android.App;
using Android.Content;
using Android.Runtime;
using Android.Views;
using Android.Widget;
using Android.OS;

namespace App3_native.Droid
{
    [Activity (Label = "App3_native.Android", MainLauncher = true, Icon = "@drawable/icon")]
    public class MainActivity : Activity
    {

        ListView listView;
        ArrayAdapter adapter;

        protected override void OnCreate (Bundle bundle)
        {
            base.OnCreate(bundle);
            SetContentView(Resource.Layout.Main);

            listView = FindViewById<ListView>(Resource.Id.listView);
            
            var items = new string[] { "List1", "List2", "List3", "List4" };
            adapter = new ArrayAdapter<string>(this, Resource.Layout.ViewTmplate, items);
            listView.Adapter = adapter;

            listView.ItemClick += OnListItemClick;
        }

        private void OnListItemClick(object sender, AdapterView.ItemClickEventArgs e)
        {
            var listView = sender as ListView;
            var t = adapter.GetItem(e.Position).ToString();
            Toast.MakeText(this, t, ToastLength.Short).Show();

        }
    }
}