如何将字符串数组的元素动态插入到 textview 中并定位它?

Posted

技术标签:

【中文标题】如何将字符串数组的元素动态插入到 textview 中并定位它?【英文标题】:How to dynamic insert elements of a string array into textview and position it? 【发布时间】:2019-12-25 10:13:52 【问题描述】:

我从 HTTP 响应中获取元素列表,然后我想将该列表动态插入到您可以看到的“框”内的 textview 中,目前它只是插入一个字符串并将它们重叠在一起。我尝试更改布局(所有三个约束,相对和线性),但没有帮助。有谁知道如何将它们动态地放置在盒子内并且不重叠但有第二张图片中的边距?否则,在项目内部,我使用约束布局。

这是我的代码:

RelativeLayout parentLayout = (RelativeLayout) findViewById(R.id.layout);

                    int size = response.toArray().length;

                    final TextView[] tv = new TextView[size];
                    TextView temp;

                    for (int i = 0; i < size; i++)
                    
                        temp = new TextView(Activity.this);

                        temp.setText(response.get(i).getName());

                        parentLayout.addView(temp);

                        tv[i] = temp;

                    

这是它现在的样子:

这是我想要的图片:

【问题讨论】:

如果你不告诉它,布局应该如何知道放置 textview 的位置 这看起来像一个普通的 ListView (RecyclerView) 用例。 我尝试了所有这些方法:***.com/questions/3416087/…,但没有任何反应 @VladyslavMatviienko 是否可以使用 ListView (RecyclerView) 将它们放入如图二所示的框内 这取决于您如何设计列表视图项。 【参考方案1】:

这听起来像是一个典型的 ListView 用例。

首先,我建议您阅读文档 -

https://developer.android.com/reference/android/widget/ListView

您可以在此处查看带有字符串数组的列表视图的实现示例 - https://androidexample.com/Create_A_Simple_Listview_-_Android_Example/index.php?view=article_discription&aid=65

通常,您选择项目的 UI,listView 将视图填充到列表中的每个项目(在您的情况下为每个字符串)。

在适配器中,您为每个项目提供 UI 所需的数据。

【讨论】:

我不明白这个:ArrayAdapter adapter = new ArrayAdapter(this, android.R.layout.simple_list_item_1, android.R.id.text1, values);跨度> @Niklaus 这是适配器的声明。你提到它接收字符串,你传递'this'作为上下文,你为每个项目创建的项目布局xml(在这里你为每个字符串创建带有边距和所有的框),要插入的textview的id输入的字符串和字符串的数组。 是的,但是里面的这些参数是什么? 在这个例子中,R.layout.simple_list_item_1 是一个 android 内部布局视图,已经定义了文本字段来显示数据,所以你可以将字符串传递给它,但是如果你想要一个自定义视图,你可以创建一个项目的布局并将其传递给那里 我是否需要将布局和文本视图放入 ListView,因为我有这些问题【参考方案2】:

我建议您将RecyclerView 用于此类任务。您也可以使用ListView

但是RecyclerViewListView 更加灵活和先进。

为要在RecyclerView 中显示的行项目创建一个简单的layout or xml 文件。 在 onCreateViewHolder 方法中添加该行 xml 文件。并且在方法onBindViewHolder 内部执行必要的任务,例如,在列表中显示每个位置的名称。

转到此链接供您参考:https://developer.android.com/guide/topics/ui/layout/recyclerview

根据您的要求,您也可以使用Array&lt;CustomModel&gt; 而不是Array&lt;String&gt;

以模型对象为列表的 RecyclerView 简单示例:https://www.javatpoint.com/android-recyclerview-list-example

【讨论】:

【参考方案3】:

嗯,正确的做法是使用ListView 或RecyclerView。

无论如何,如果你想使用你当前的解决方案,你需要指定每个TextView的位置。

例如,为您创建的每个 textview 分配一个 ID,然后将其位置设置在前一个之下。 Here 你可以找到方法。

【讨论】:

以上是关于如何将字符串数组的元素动态插入到 textview 中并定位它?的主要内容,如果未能解决你的问题,请参考以下文章

如何将元素插入到特定位置的数组中?

如何在 HTML 表单的占位符元素中插入 jQuery 字符串

如何将多个元素插入到 JQuery 中的数组中?

如何将json数组元素动态显示到select标签中?

如何有效地将元素插入数组的任意位置?

C语言编程怎么将一个数组截断成几个数组