Android C#Xamarin。如何在列表视图中显示关联的表?

用户名

我在Asset文件夹中有sqlite数据库。我在列表视图中显示了一个表(下面的代码),但是在列表视图中单击行后,显示另一个与第一个表相关的表时出现了问题。也就是说,表格包含有关比赛的数据,每个比赛都有一个关联的表格,其中包含灯具的数量。单击比赛行后,我想显示与此比赛相关联的固定装置。我怎样才能做到这一点?谢谢你们

using (var contents = con.CreateCommand())
               {

                   contents.CommandText = "SELECT * from Competition";
                   var r = contents.ExecuteReader();
                   while (r.Read())
                       items.Add(string.Format("\n\t{0}", r["name"].ToString()));


                   con.Close();

                   ListAdapter = new ArrayAdapter(this, Android.Resource.Layout.SimpleListItem1, items);
               }}

            protected override void OnListItemClick(ListView l, View v, int position, long id)
                    {
                       var t = items[position];
...
用户名

终于我明白了。我更改了查询:

 using (var contents = con.CreateCommand())
        {
            contents.CommandText = "SELECT [_id], [name], [shortName],[defaultCompetitionRule_id] from [Competition]";
            var r = contents.ExecuteReader();
            while (r.Read())
            {
                tl.Add(FromReader(r));
            }
            con.Close();
            ListAdapter = new ArrayAdapter<String>(this,  Android.Resource.Layout.SimpleListItem1, tl.Select(x => x.name).ToArray());
        }

我的FromReader():

Competition FromReader(SqliteDataReader r)
    {
        var t = new Competition();
        t._id = Convert.ToInt32(r["_id"]);
        t.name = r["name"].ToString();
        t.shortName = r["shortName"].ToString();
        t.defaultCompetitionRule_id = Convert.ToInt32(r["defaultCompetitionRule_id"]);
        return t;
     }

然后OnListItemClick,我获得了单击的竞赛的“ id”,并将其发送到下一个活动:

 protected override void OnListItemClick(ListView l, View v, int position, long id)
    {
        var ids = tl.Select(x => x._id).ToArray();
        var t = ids[position];
        var activity2 = new Intent(this, typeof(SelectFixture));
        activity2.PutExtra("value", t.ToString());
        StartActivity(activity2);

    }

最后,在第二个活动中,我获得了ID:

Passed_value = Intent.GetStringExtra("value"); 

非常感谢您的帮助。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何在Android的列表视图中显示Dropbox文件?

如何在Android Eclipse的表视图中显示数据

如何在Android的Android API 11+中的列表视图中显示联系人

如何在Android列表视图中对齐文本视图?

如何在发送多维数组的服务器中从Android的列表视图中显示数据

如何在Android中的JSON响应中在列表视图中显示图像

Android:如何在列表视图中重复列表项

如何在列表视图中单击元素(Android)

Android:如何在列表视图中维护设置数据

Android-如何在列表视图中设置整数值

当用户未连接到Android App中的互联网时如何在列表视图中显示缓存数据

如何将数据从数据库表添加到ListView C#Xamarin Android App

Android-如何在此列表视图中使用自定义列表视图

C#xamarin循环进度栏-Android

彩色按钮C#Xamarin Android

如何从Android中的列表视图中删除列表视图项

android如何在多列列表视图中显示25行,当单击下一步按钮时显示下25行

Xamarin.Forms Shared在Android视图中不显示图像,但在iOS视图中显示图像

如何在Android Xamarin中将按钮动态添加到视图中?

在列表视图中显示 JSONArray 数据 android - Facebook api

在Android搜索视图中显示从建议列表中选择的内容

Android Kotlin如何在多项选择列表视图中选中复选框

如何在列表视图中使用Android DataBinding并仍然使用ViewHolder模式?

如何在Android Studio中的列表视图中的数据进行排序

如何在Android的可扩展列表视图中获取复选框状态

如何在列表视图中获取选定项目的值-Android

如何在Android中从ArrayList填充的列表视图中选择多个项目

如何在Android的自定义列表视图中ser读取未读消息

ANDROID-如何在列表视图中定义评级栏ID?