Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/312.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 在Xamarin应用程序中向Android上的ListView添加项目_C#_Android_Android Listview_Xamarin_Listactivity - Fatal编程技术网

C# 在Xamarin应用程序中向Android上的ListView添加项目

C# 在Xamarin应用程序中向Android上的ListView添加项目,c#,android,android-listview,xamarin,listactivity,C#,Android,Android Listview,Xamarin,Listactivity,我试图在Xamarin应用程序中进行混音,但到目前为止我失败了 在Xamarin Studio中,我创建了一个Android应用程序,目标是最新和最好的,以及所有默认设置。然后我在我的活动中添加了一个ListView,并给它一个id@android:id/list。我已将活动的代码更改为: [Activity (Label = "MyApp", MainLauncher = true, Icon = "@drawable/icon")] public class MainActivity : L

我试图在Xamarin应用程序中进行混音,但到目前为止我失败了

在Xamarin Studio中,我创建了一个Android应用程序,目标是最新和最好的,以及所有默认设置。然后我在我的活动中添加了一个
ListView
,并给它一个id
@android:id/list
。我已将活动的代码更改为:

[Activity (Label = "MyApp", MainLauncher = true, Icon = "@drawable/icon")]
public class MainActivity : ListActivity
{
    List<string> items;
    ArrayAdapter<string> adapter;

    protected override void OnCreate (Bundle bundle)
    {
        base.OnCreate (bundle);
        SetContentView (Resource.Layout.Main);
        items = new List<string>(new[] { "Some item" });
        adapter = new ArrayAdapter<string> (this, Android.Resource.Layout.SimpleListItem1, items);
        ListAdapter = adapter;

        FindViewById<Button> (Resource.Id.myButton).Click += HandleClick;
    }

    protected void HandleClick(object sender, EventArgs e) 
    {
        items.Add ("Another Item!");
        adapter.NotifyDataSetChanged ();
        Android.Widget.Toast.MakeText (this, "Method was called", ToastLength.Short).Show();
    }
}
相反,我做到了:

ListAdapter = adapter;
因为
setListAdapter
方法在我的Xamarin解决方案中不可用,并且我假设属性设置器也要这样做


长话短说:我需要做什么才能将项目动态添加到我的ListView?

您正在列表中添加项目,但适配器不知道该列表。您应该做的是将该项添加到适配器:

adapter.Add ("Another Item!");

杰出的这很好,解决了我眼前的问题。与需要支持ArrayList的链接Java解决方案相比,Xamarin允许您直接将项添加到适配器中,而不是直接将项添加到需要支持ArrayList的链接Java解决方案,对此您没有任何见解?@Jeroen:您也可以在Java中直接将和项添加到ArrayAdapter中。
adapter.Add ("Another Item!");