【问题标题】:Create android spinner dynamically in Xamarin在 Xamarin 中动态创建 android spinner
【发布时间】:2021-07-20 08:12:39
【问题描述】:

我正在创建一个简单的应用程序来熟悉 Xamarin。我想创建和填充微调器并动态显示其选项。我看过文档here,但它不是以编程方式创建的。任何帮助将不胜感激

var levels = new List<String>() { "Easy", "Medium", "Hard", "Multiplayer" };
var adapter = new ArrayAdapter<String>(this, Android.Resource.Layout.SimpleSpinnerItem, levels);
                    adapter.SetDropDownViewResource(Android.Resource.Layout.SimpleSpinnerDropDownItem);
var spinner = FindViewById<Spinner>(Resource.Id.spnrGameLevel);
spinner.Adapter = adapter;

spinner.ItemSelected += (sender, e) =>
{
    var s = sender as Spinner;
    Toast.MakeText(this, "My favorite is " + s.GetItemAtPosition(e.Position), ToastLength.Short).Show();
};

我的 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:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:text="Choose your game level" />
    <Spinner
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:id="@+id/spnrGameLevel" />
</LinearLayout>

【问题讨论】:

    标签: xamarin.android xamarin android-spinner


    【解决方案1】:

    要为Spinner 动态创建项目,您需要有一个adapter

    最简单的适配器是ArrayAdapter&lt;T&gt;

    这是一个例子。

    var items = new List<string>() {"one", "two", "three"};
    var adapter = new ArrayAdapter<string>(this, Android.Resource.Layout.SimpleSpinnerItem, items);
    

    设置adapter后,在你的视图中找到Spinner并设置adapter

    var spinner = FindViewById<Spinner>(Resource.Id.spinner);
    spinner.Adapter = adapter;
    

    【讨论】:

    • 感谢您的回答。我也尝试过,但是在尝试这个时遇到了异常。你调用的对象是空的。我已经用代码更新了我的问题
    • @Anand 哪个语句导致了异常?
    • 异常发生在spinner.Adapter = adapter;
    • @Anand 你忘了实例化包含spinner的视图吗?
    • 这是因为spinner没有被调用,,,你应该把SetContentView(Resource.Layout.Main);在使用 var spinner = FindViewById(Resource.Id.spinner); 之前
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-07-29
    • 1970-01-01
    • 2018-02-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多