【发布时间】:2018-08-19 22:05:30
【问题描述】:
所以我目前正在尝试为我的 Xamarin 表单应用程序制作自动完成功能。该应用程序将从 Google 的 Autocomplete API 获取输入,对其进行反序列化,并将其传递到一个表中,然后将数据传递给一个 listvbiew... 目前我已成功完成以下操作:
使“位置”条目接受输入并将其转换为 Google 自动完成 API URL。
将请求发送到 Google 的自动完成 API,将请求转换为 JSON 包
- 将 JSON 反序列化为名为“结果”的列表
这是负责上述内容的大部分代码:
protected async void GetInfo(){
if (CrossConnectivity.Current.IsConnected){
try{
HttpClient webSource = new HttpClient();
Activity_Indicator.IsRunning = true;
var content = await webSource.GetStringAsync(url);
string EditedJSON = "[" + content + "]";
var DeserializedJSON = JsonConvert.DeserializeObject<List<PlacesAPI>>(EditedJSON);
ObservableCollection < PlacesAPI > results = new ObservableCollection<PlacesAPI>(DeserializedJSON);
ListViewUI.ItemsSource = results;
}
catch(Exception ey){
Debug.WriteLine("" + ey);
}
}
}
从这里我需要做的就是知道如何获取在results/[0]/predictions/([0],[1],[2]) 中找到的“描述”值并将其绑定到我这样设置的列表视图中:
<ListView x:Name="ListViewUI">
<ListView.ItemTemplate>
<DataTemplate>
<ViewCell>
<StackLayout>
<Label Text="{Binding ???}" TextColor="Black"/>
</StackLayout>
</ViewCell>
</DataTemplate>
</ListView.ItemTemplate>
</ListView>
当一切都说完了,它将使用结果列表中的三个描述值填充列表视图。
【问题讨论】:
-
所以您的 List 的每一行都包含多个预测对象,并且您想整理它们的描述以显示为单个值?
-
不,我希望第一行的描述值来自 results/[0]/predictions/[0],第二行的描述值来自 results/[0]/predictions/ [1],第三行的描述值来自 results/[0]/predictions/[2]