gpt4 book ai didi

mvvmcross - MVVMCross Xamarin (Android) 中的自动完成

转载 作者:行者123 更新时间:2023-12-01 12:35:36 24 4
gpt4 key购买 nike

我正在尝试在基于 Xamarin Android 的布局中创建一个自动完成控件。我正在使用 MVVMCross。

我在片段中创建了以下 AXML 布局。

 <TextView
android:text="Item"
android:layout_column="0"
android:id="@+id/textView42"
android:layout_height="28.6dp"
android:layout_width="86.9dp"
android:gravity="center"
android:layout_marginTop="17.5dp"
android:layout_marginRight="17.5dp" />
<AutoCompleteTextView
android:id="@+id/autocomplete_country"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_marginLeft="5dp"
local:MvxBind="Adapter Items" />

我更新了我的 View 模型以返回一个字符串数组。

private string[] _items = new string[] { "DD", "DD2" };
public String[] Items
{
get { return this._items; }
set { this._items = value; RaisePropertyChanged<string[]>(() => this._items); }
}

我想我需要使用一个 ArrayAdapter,但是我不确定该怎么做。请提供一些可以帮助我继续进行的指导/指示。

我是 Xamarin 和 MVVMCross 的新手,所以我可能在这里遗漏了一些东西。

最佳答案

您不需要自定义适配器。切换到 MvxAutoCompleteTextView 并使用 MVVMCross 绑定(bind)。这是我如何使用它的示例。

<MvxAutoCompleteTextView
android:id="@+id/DrugName"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:completionThreshold="1"
android:hint="Enter drug name..."
android:textSize="@dimen/text_size_xlarge"
local:MvxItemTemplate="@layout/item_drug_notclickable"
local:MvxBind="ItemsSource DrugSuggestions; PartialText DrugSearchTerm; SelectedObject Drug;"
android:layout_gravity="right" />

正如 Nikola 在评论中所说,您希望针对 Items 属性而不是私有(private)变量调用 RaisePropertyChanged。这适用于所有属性更改的调用。

使用自动完成需要注意的一件事是,对文本的更改必须导致对 ItemSource 的更改。查看此 GitHub 答案以获得完整解释,https://github.com/MvvmCross/MvvmCross/issues/945陷阱

关于mvvmcross - MVVMCross Xamarin (Android) 中的自动完成,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30150008/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com